我有一个现有的 GridView,其中包含“合作伙伴名称”字段。它可以按合作伙伴名称排序。
现在我需要更改合作伙伴名称字段,并在某些情况下使其可点击和 alert() 某些内容。

现有代码为:

  <asp:GridView ID="gridViewAdjustments" runat="server" AutoGenerateColumns="false" AllowSorting="True" OnSorting="gridView_Sorting" OnRowDataBound="OnRowDataBoundAdjustments" EnableViewState="true">
         <asp:BoundField DataField="PartnerName" HeaderText="Name" SortExpression="PartnerName"/>

我已经添加了列:
<asp:hyperlinkfield  datatextfield="PartnerName" SortExpression="PartnerName" headertext="Name" ItemStyle-CssClass="text2"/>

这使我能够控制 CSS 和排序。但是,我找不到如何向其添加客户端 javascript 函数。
我发现添加:
    <asp:TemplateField HeaderText="Edit">
<ItemTemplate>
      <a id="lnk" runat="server">Edit</a>



使我能够通过 id 访问“lnk”并添加到其属性中。但是,我失去了排序能力。

在这种情况下,正确的解决方案是什么?
谢谢。

最佳答案

我找到的解决方案是以这种方式使用 asp:TemplateField ,而不会失去排序能力并使用 Eval 使用数据文本字段:

 <asp:TemplateField HeaderText="Name" SortExpression="PartnerName">
<ItemTemplate>
        <a onclick="javascript:alert('ok')" href="http://<%#Eval("PartnerName")%>"><%#Eval("PartnerName")%></a>
</ItemTemplate></asp:TemplateField>

关于ASP.Net:将客户端onClick添加到GridView中的HyperlinkField中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2938224/

10-16 17:21
查看更多