Nir*_*Nir 4 asp.net gridview c#-3.0
我有一个现有的GridView,其中包含"伙伴名称"字段.它可以按合作伙伴名称排序.
现在我需要更改合作伙伴名称字段,并在某些情况下使其可点击并提醒()某些内容.
现有代码是:
<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"/>
Run Code Online (Sandbox Code Playgroud)
我添加了专栏:
<asp:hyperlinkfield datatextfield="PartnerName" SortExpression="PartnerName" headertext="Name" ItemStyle-CssClass="text2"/>
Run Code Online (Sandbox Code Playgroud)
这使我能够控制CSS和排序.但是,我找不到如何添加客户端javascript函数.
我发现添加:
<asp:TemplateField HeaderText="Edit">
<ItemTemplate>
<a id="lnk" runat="server">Edit</a>
Run Code Online (Sandbox Code Playgroud)
使我能够通过id访问"lnk"并添加到其属性.但是,我失去了排序能力.
在这种情况下,正确的解决方案是什么?
谢谢.
我找到的解决方案是以这种方式使用asp:TemplateField,而不会丢失排序功能并使用Eval使用datatextfield:
<asp:TemplateField HeaderText="Name" SortExpression="PartnerName">
<ItemTemplate>
<a onclick="javascript:alert('ok')" href="http://<%#Eval("PartnerName")%>"><%#Eval("PartnerName")%></a>
</ItemTemplate></asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
处理RowDataBound活动.在事件处理程序中......
private void CustomersGridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
e.Row.Cells[0].Controls[0].Attributes.Add("onclick", "alert(‘An alert’);")
}
Run Code Online (Sandbox Code Playgroud)
您可能需要更改Controls[0]为Controls[1].
| 归档时间: |
|
| 查看次数: |
25807 次 |
| 最近记录: |