相关疑难解决方法(0)

GridView排序:SortDirection总是升序

我有一个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>
Run Code Online (Sandbox Code Playgroud)

后面的代码是这样定义的:
首先加载:

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

当用户点击标题时:

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();
}
Run Code Online (Sandbox Code Playgroud)

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

我做错了什么 ?

asp.net sorting gridview

66
推荐指数
7
解决办法
13万
查看次数

使用gridview asp.net进行排序和分页

我正在尝试使用gridview进行手动排序和分页,但没有成功.

问题是,当用户单击要排序的列时,它会对该页面进行排序,但不会对gridview后面的数据源(数据视图)进行排序.因此,当他们进入不同的页面时,他们的排序就会丢失.我正在寻找一种实际排序gridview背后的数据源的排序.这是我到目前为止:

protected void GridView_OnSort(object sender, GridViewSortEventArgs e)
    {
        String sortExpression = e.SortExpression;

        if (GridViewSortDirection == SortDirection.Ascending)
        {
            DataView myDataView = new DataView(mybll.GetItemsOrdered());
            myDataView.Sort = sortExpression + " DESC";
            GridView.DataSource = myDataView;
            GridView.DataBind();
        }
        else
        {
            DataView myDataView = new DataView(mybll.GetItemsOrdered());
            myDataView.Sort = sortExpression + " ASC";
            GridView.DataSource = myDataView;
            GridView.DataBind();
        }
    }
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.谢谢.

asp.net sorting paging gridview

31
推荐指数
2
解决办法
15万
查看次数

标签 统计

asp.net ×2

gridview ×2

sorting ×2

paging ×1