在 asp:GridView 中,ItemTemplate 的点击事件

4

我有一个带有以下标记的GridView:

<asp:GridView ID="gdvResxKeyValue" runat="server" Width="100%" >
  <Columns>     
   <asp:TemplateField>
    <ItemTemplate>                        
        <asp:Image ID="imgEditResxValue" CssClass="sfEdit" runat="server" ImageUrl="~/Administrator/Templates/Default/images/imgedit.png"  />                     
    </ItemTemplate>                              
  </asp:TemplateField>                                       
  </Columns>                                       
</asp:GridView> 

我需要为图像点击事件设置处理程序。有没有更简单的方法来实现?


1
你不能把你的图像更改为ImageButton吗? - Damith
我正在将一个已经使用的框架升级到更新的版本。之前它是由JavaScript使用jquery-1.4.4.min.js处理的,'live('click')'事件来处理它,但这一次应该使用'on',但它不支持。我没有权限将图像更改为ImageButton。 - Jeetendra
3个回答

4
您可以使用图像按钮代替图像。请尝试以下代码。
 <asp:GridView ID="gdvResxKeyValue" runat="server" Width="100%" >
  <Columns>     
   <asp:TemplateField>
    <ItemTemplate>                        
        <asp:ImageButton ID="imgEditResxValue" CssClass="sfEdit" runat="server" ImageUrl="~/Administrator/Templates/Default/images/imgedit.png" OnClick="YourEventName"  />                     
    </ItemTemplate>                              
  </asp:TemplateField>                                       
  </Columns>                                       
</asp:GridView>

您只需要在此处指定服务器端事件名称。


1
使用 ASP 按钮并将其样式设置为 display:none
<asp:Image ID="imgEditResxValue" CssClass="sfEdit" runat="server" ImageUrl="~/Administrator/Templates/Default/images/imgedit.png" onclick="ClickImage(this)"  />
.......


<asp:Button ID="hiddenButton" runat="server" OnClick="hiddenButton_Click" style="display:none"></asp:Button>
<script type="text/javascript">
function ClickImage(imageControl)
{
     document.getElementById('<%=hiddenButton.ClientID%>').click();
}
</script>

这将触发按钮的服务器端事件,您可以在那里完成您的工作。

我尝试将按钮保留在ItemTemplate中,但是在执行document.getElementById('<%=hiddenButton.ClientID%>').click();时,构建时会出现关于“当前上下文中不存在'hiddenButton'名称”的错误。 - Jeetendra
1
将按钮放在网格视图之外。 - Nisha

0
尝试这个:
jquery解决方案
<asp:Image ID="imgEditResxValue" CssClass="sfEdit" runat="server" ImageUrl="~/Administrator/Templates/Default/images/imgedit.png"  onclick="this.next().click()"/>                     
                                            <asp:LinkButton Text="text" runat="server" OnClick="call_method"/>

1
顺便提一下,您回答中的onclick不起作用。http://meta.stackexchange.com/a/48195/170696 - Yuriy Rozhovetskiy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接