c# - Gridview 标题链接按钮未更新

标签 c# asp.net gridview

我有一个在 Web 部件上显示数据的 gridview,标题中有链接按钮以允许按不同字段排序(使用自定义排序方法,每列都不同)

按钮工作正常,但在点击处理程序中它会更改文本、命令名称和字体。

这永远行不通(即按钮上没有发生任何更改),是否有任何理由不能行得通?

GridView ASCX:

    <asp:GridView ID="GridView1" runat="server" Width="100%" AutoGenerateColumns="false" 
     AllowSorting="False">
    <HeaderStyle  />
    <RowStyle />
    <Columns>
        <asp:TemplateField>
            <HeaderTemplate>
                <table>
                    <tr>
                        <td>
                            <a>Name</a>
                            <asp:LinkButton ID="btnNameSort" runat="server" Text="Sort    Ascending" OnClick="btnNameSort_Click" CommandName="asc" />
                    </tr>
                </table>
            </HeaderTemplate>
            <ItemTemplate>
               ... Item code
            </ItemTemplate>

这是背后的代码:

    public void btnNameSort_Click(object sender, EventArgs e)
    {
        LinkButton btn = (LinkButton)GridView1.HeaderRow.FindControl("btnNameSort");
        if (btn.CommandName == "asc")
        {
            btn.Text = "Sort Descending";
            btn.Font.Bold = true;
            btn.CommandName = "desc";
            updateGridView1(true, "title");
        }
        else
        {
            btn.Text = "Sort Ascending";
            updateGridView1(false, "title");
        }

最佳答案

我认为 GridView 正在重新呈现,您所做的那些更改不会保留。我的猜测是 updateGridView 中有一个 DataBind 方法。对吗?我认为您应该通过在 ViewState 属性中存储排序方向和排序列来设置文本。当 GridView 重新启动时,您可以访问这些属性,这些属性现在将是持久的。

顺便说一句——我认为这是一个很好的问题。您还可以订阅 ItemCreated 处理程序并获取 header 。如果您的 sortdirection 存储在 viewstate 中并且您的 sortcolumn 存储在 viewstate 中,您可以找到您要查找的单元格并相应地调整它。

关于c# - Gridview 标题链接按钮未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6845545/

相关文章:

c# - 如何处理 GridView 上的行双击,以及如何获取选中的行

c++ - 异步 Qt 模型加载到 QML GridView

c# - 未收集内存

c# - 如何防止 C# 控制台应用程序优先作为事件窗口?

asp.net - Server.TransferRequest返回特定服务器上的空白页

css - Bootstrap 3 网格系统将导航栏菜单与页面内容对齐并设置页面内容大小

sql - VB.Net 使用GridView绑定(bind)字段计算值并将值输出到另一个字段

c# - Linq比较字符串日期

c# - 使用 mongoDB C# 驱动程序,如何发出 runCommand?

ASP.NET 4.0 图表 - 当数据绑定(bind)查询未返回结果时,如何在图表区域中显示解释性消息?