我在我的页面上显示来自 DataTable 的信息,并想添加一些排序功能,这比直接的列排序要稍微好一点。因此,我一直在尝试将 LinkButtons 放在我的 GridView 的 HeaderItems 中,它回发到在重新加载页面之前更改 session 信息的函数。
单击我的链接确实会导致回发,但它们似乎不会生成任何OnClick 事件,因为我的OnClick 函数不会不会被处决。我将 AutoEventWireup
设置为 true,如果我将链接移出 GridView,它们就可以正常工作。
我通过创建常规 anchor 、将查询附加到它们的 hrefs 并在页面加载时检查它们来解决这个问题,但我更喜欢 C# 来完成繁重的工作。有什么想法吗?
更新:阐明控件的 ID 与其 OnClick 函数名称相匹配。
最佳答案
您的方向是正确的,但请尝试使用 LinkButton 的命令名称/参数。尝试这样的事情:
在TemplateField的HeaderTemplate中,添加一个LinkButton并设置CommandName和CommandArgument
<HeaderTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="sort" CommandArgument="Products" Text="<%# Bind('ProductName")' />
</HeaderTemplate>
接下来,设置GridView的RowCommand事件
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "sort")
{
//Now sort by e.CommandArgument
}
}
通过这种方式,您可以更好地控制 LinkButton,而无需做太多工作来跟踪它们。
关于c# - DataView 中的回发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45475/