c# - DataView 中的回发事件

标签 c# .net asp.net gridview postback

我在我的页面上显示来自 DataTable 的信息,并想添加一些排序功能,这比直接的列排序要稍微好一点。因此,我一直在尝试将 LinkBut​​tons 放在我的 GridView 的 HeaderItems 中,它回发到在重新加载页面之前更改 session 信息的函数。

单击我的链接确实会导致回发,但它们似乎不会生成任何OnClick 事件,因为我的OnClick 函数不会不会被处决。我将 AutoEventWireup 设置为 true,如果我将链接移出 GridView,它们就可以正常工作。

我通过创建常规 anchor 、将查询附加到它们的 hrefs 并在页面加载时检查它们来解决这个问题,但我更喜欢 C# 来完成繁重的工作。有什么想法吗?

更新:阐明控件的 ID 与其 OnClick 函数名称相匹配。

最佳答案

您的方向是正确的,但请尝试使用 LinkBut​​ton 的命令名称/参数。尝试这样的事情:

在TemplateField的HeaderTemplate中,添加一个LinkBut​​ton并设置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

    }
}

通过这种方式,您可以更好地控制 LinkBut​​ton,而无需做太多工作来跟踪它们。

关于c# - DataView 中的回发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45475/

相关文章:

c# - 使用 MarshalByRefObject 有什么副作用吗?

asp.net - 哪个对于依赖项更好 : Web Service vs XML?

c# - 使用 Clipper 库的平行线

c# - 除非重新启动应用程序,否则 DataGridView 不会更新

c# - 如何以编程方式创建 MSI 安装程序?

c# - 必须在 EnsureReconnecting 之后调用 SignalR HubConnection.CreateHubProxy() 吗?

C# 在没有 Excel 的情况下将 .xls 转换为 .csv

ASP.NET WSAT(网站管理工具)和自定义成员资格提供程序

c# - 如果值在以前的记录中,则在 linq 查询中选择 null

javascript - 如何从服务器端asp.net调用Javascript函数