gpt4 book ai didi

asp.net - GridView排序: SortDirection always Ascending

转载 作者:行者123 更新时间:2023-12-02 05:47:43 49 4
gpt4 key购买 nike

我有一个 gridview,当用户单击标题时,我需要对其元素进行排序。
它的数据源是一个List对象。

aspx 是这样定义的:

<asp:GridView ID="grdHeader" AllowSorting="true" AllowPaging="false" 
AutoGenerateColumns="false" Width="780" runat="server" OnSorting="grdHeader_OnSorting" EnableViewState="true">
<Columns>
<asp:BoundField DataField="Entitycode" HeaderText="Entity" SortExpression="Entitycode" />
<asp:BoundField DataField="Statusname" HeaderText="Status" SortExpression="Statusname" />
<asp:BoundField DataField="Username" HeaderText="User" SortExpression="Username" />
</Columns>
</asp:GridView>

背后的代码是这样定义的:
首次加载:

protected void btnSearch_Click(object sender, EventArgs e)
{
List<V_ReportPeriodStatusEntity> items = GetPeriodStatusesForScreenSelection();
this.grdHeader.DataSource = items;
this.grdHeader.DataBind();
}

当用户点击标题时:

protected void grdHeader_OnSorting(object sender, GridViewSortEventArgs e)
{
List<V_ReportPeriodStatusEntity> items = GetPeriodStatusesForScreenSelection();
items.Sort(new Helpers.GenericComparer<V_ReportPeriodStatusEntity>(e.SortExpression, e.SortDirection));
grdHeader.DataSource = items;
grdHeader.DataBind();
}

我的问题是 e.SortDirection 始终设置为升序。
我有一个带有类似代码的网页,它运行良好,e.SortDirection 在升序和降序之间交替。

我做错了什么?

最佳答案

Session 和 Viewstate 的问题在于,如果页面上有多个 gridview,您还必须跟踪存储了 SortColumn 和 Direction 的 gridview 控件。

session 和 View 状态的替代方法是向 Gridview 添加 2 个属性,并以这种方式跟踪列和方向。

这是一个例子:

private void GridViewSortDirection(GridView g, GridViewSortEventArgs e, out SortDirection d, out string f)
{
f = e.SortExpression;
d = e.SortDirection;

//Check if GridView control has required Attributes
if (g.Attributes["CurrentSortField"] != null && g.Attributes["CurrentSortDir"] != null)
{
if (f == g.Attributes["CurrentSortField"])
{
d = SortDirection.Descending;
if (g.Attributes["CurrentSortDir"] == "ASC")
{
d = SortDirection.Ascending;
}
}

g.Attributes["CurrentSortField"] = f;
g.Attributes["CurrentSortDir"] = (d == SortDirection.Ascending ? "DESC" : "ASC");
}

}

关于asp.net - GridView排序: SortDirection always Ascending,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/250037/

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