GridView asp.net的页面索引更改丢失了排序

时间:2017-09-14 15:07:06

标签: c# asp.net sorting gridview pagination

我在GridView控件中实现了排序分页。代码如下:

<asp:GridView ShowHeaderWhenEmpty="True" CssClass="Grid"                    
            AlternatingRowStyle-CssClass="alt" AllowPaging="True" PageSize="15" OnPageIndexChanging="grdAllRequests_PageIndexChanging"
            PagerStyle-CssClass="pgr" OnSorting="grdAllRequests_Sorting" AllowSorting="True" 
            EmptyDataText="No data to show" ID="grdAllRequests" runat="server" AutoGenerateColumns="false" 
            OnRowDataBound="grdAllRequests_RowDataBound">

以下是分页和排序

背后的代码
protected void grdAllRequests_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    grdAllRequests.PageIndex = e.NewPageIndex;
    DataTable dt = (DataTable)ViewState["dtAllRequests"];

    BindDataBAL bind = new BindDataBAL();
    bind.BindGridData(grdAllRequests, dt);
}

protected void grdAllRequests_Sorting(object sender, GridViewSortEventArgs e)
{
    DataTable dtrslt = (DataTable)ViewState["dtAllRequests"];
    if (dtrslt.Rows.Count > 0)
    {
        if (Convert.ToString(ViewState["sortdr"]) == "Asc")
        {
            dtrslt.DefaultView.Sort = e.SortExpression + " Desc";
            ViewState["sortdr"] = "Desc";
        }
        else
        {
            dtrslt.DefaultView.Sort = e.SortExpression + " Asc";
            ViewState["sortdr"] = "Asc";
        }
        ViewState["dtAllRequests"] = dtrslt;
        grdAllRequests.DataSource = dtrslt;
        grdAllRequests.DataBind();
    }
}

现在的问题是,当我点击任何标题时,排序正确执行但是当我尝试导航到下一页时,排序就会丢失。不确定出了什么问题。请帮助。

1 个答案:

答案 0 :(得分:1)

您必须使用ProxyPass /socket.io/ https://10.11.74.4:4010/socket.io/ ProxyPassReverse /socket.io/ https://10.11.74.4:4010/socket.io/

DefaultView.ToTable();