【问题标题】:Click event for ItemTemplate inside asp:GridView在 asp:GridView 中的 ItemTemplate 的单击事件
【发布时间】:2013-08-26 07:05:27
【问题描述】:

我有一个带有以下标记的 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> 

我需要一个处理图像点击事件的处理程序。有没有更简单的方法?

【问题讨论】:

  • 你不能把你的图片改成ImageButton吗?
  • 我正在将一个已经使用的框架升级到更新的版本。以前它是由 javascript 使用 jquery-1.4.4.min.js 处理的,并且 'live('click')' 事件正在处理它,但这次应该使用 'on' 并且它不支持。我无权将图像更改为图像按钮。

标签: c# asp.net gridview


【解决方案1】:

您可以使用图像按钮代替图像。试试这个代码。

 <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>

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

【讨论】:

    【解决方案2】:

    使用一个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('').click();构建时出现有关“当前上下文中不存在名称‘hiddenButton’”的错误。
    • 将按钮保留在网格视图之外
    【解决方案3】:

    试试这个:

    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"/>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-09
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    相关资源
    最近更新 更多