2012-02-22 2 views
1

Как я могу получить идентификатор ImageButton, чтобы использовать его для открытия диалогового окна jquery?Как открыть диалог jQuery из ImageButton внутри GridView?

Напечатав идентификатор ImageButton ID, он работает должным образом. то есть:

$('#ContentPlaceHolder1_GridView1_linkPasswordEdit_0').click(function() { 
    $('#dialog-modal2').dialog('open'); 
    return false; 
}); 

Однако, я хочу сделать это со всеми ImageButton в GridView и не только первый. Я пробовал различные способы, как:

$('#ContentPlaceHolder1_GridView1_' + '<%# linkPasswordEdit.ClientID %>').click(function() { 
    $('#dialog-modal2').dialog('open'); 
    return false; 
}); 

Или:

$('#' + '<%# ContentPlaceHolder1.GridView1.((GridViewRow)Container).FindControl("linkPasswordEdit").ClientID %>').click(function() { 
    $('#dialog-modal2').dialog('open'); 
    return false; 
}); 

Это то, что ImageButton выглядит следующим образом:

<asp:TemplateField ShowHeader="False"> 
<ItemTemplate> 
<asp:ImageButton ID="linkPasswordEdit" runat="server" CausesValidation="false" OnCommand="passwordEditCommand" 
    CommandArgument='<%#Eval("id")%>' ToolTip="Click to edit password" ImageUrl="~/Images/imagesActions/password_edit.png" 
    AlternateText='<%#Eval("userName")%>' /> 
</ItemTemplate> 
</asp:TemplateField> 

Любая помощь будет принята с благодарностью.

ответ

4

Почему бы просто не назначить пользовательский класс CSS (используемый только для поиска кнопок изображения) для кнопки изображения и использовать селектор классов JQuery для создания ассоциации.

$('.imageButtonFinderClass').click(function() { 
    $('#dialog-modal2').dialog('open'); 
    return false; 
}); 


<asp:TemplateField ShowHeader="False"> 
<ItemTemplate> 
<asp:ImageButton ID="linkPasswordEdit" runat="server" CausesValidation="false" OnCommand="passwordEditCommand" CssClass="imageButtonFinderClass" 
    CommandArgument='<%#Eval("id")%>' ToolTip="Click to edit password" ImageUrl="~/Images/imagesActions/password_edit.png" 
    AlternateText='<%#Eval("userName")%>' /> 
</ItemTemplate> 
</asp:TemplateField> 
+0

Thanks. Почему-то я не думал об этой возможности. Теперь мне интересно, как я могу определить, какая ссылка была нажата, я имею в виду, какой из них открывает диалог? Мне нужно получить <% # Eval ("id")%> как параметр в диалоговом окне jquery. Заранее спасибо! – aleafonso

+0

Попробуйте это: http: //stackoverflow.com/questions/48239/getting-the-id-of-the-element-that-fired-an-event-using-jquery – swannee

+0

В этом случае вы можете оценить данные «Id» в пользовательский атрибут и следуйте указаниям в некоторых ответах на сообщение выше. В основном извлекайте значение из пользовательского атрибута с помощью метода JQuery .attr. – swannee

Смежные вопросы