Как открыть диалоговое окно jQuery из ImageButton внутри GridView? - PullRequest
1 голос
/ 22 февраля 2012

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

Путем жесткого ввода идентификатора ImageButton он работает, как и ожидалось. то есть:

$('#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>

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

1 Ответ

4 голосов
/ 22 февраля 2012

Почему бы просто не назначить пользовательский класс CSS (используемый только для поиска кнопок изображения) для кнопки image и использовать селектор класса 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>
...