gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:04 24 4
gpt4 key购买 nike

我有一个在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com