簡體   English   中英

在另一頁上對GridView進行排序,在上一頁中進行排序

[英]Sorting GridView on Another page as sorted on a previous page

我的應用程序中有一個gridview。 單擊按鈕后,具有相同列的相同網格也將加載到另一頁中。 現在我想做的是,如果用戶對1sr頁面上的某列進行了網格排序,則在單擊按鈕時加載的另一頁上的網格也應與用戶在上一頁中選擇的同一列進行排序。 我該如何實現。

在這方面的任何幫助將不勝感激... :)

我相信您可以使用會話變量來存儲排序方向。 因此,在加載GridView時,您要求提供會話變量以對其進行正確排序。

它應該類似於以下內容:

private string getSortDirectionString()
    {
        if (Session["sortDirection"] == null)
        {
            Session["sortDirection"] = "ASC";
        }
        else
        {
            if (Session["sortDirection"].ToString() == "ASC")
            {
                Session["sortDirection"] = "DESC";
                return Session["sortDirection"].ToString();
            }
            if (Session["sortDirection"].ToString() == "DESC")
            {
                Session["sortDirection"] = "ASC";
                return Session["sortDirection"].ToString();
            }
        }
        return Session["sortDirection"].ToString();
    }

這是您應該如何對GridView進行排序的方法:

protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
    {
        listBind(); //procedure to populate your GridView
        DataSet dsSortTable = GridView1.DataSource as DataSet;
        DataTable dtSortTable = dsSortTable.Tables[0];
        if (dtSortTable != null)
        {
            DataView dvSortedView = new DataView(dtSortTable);
            dvSortedView.Sort = e.SortExpression + " " + getSortDirectionString();
            Session["sortExpression"] = e.SortExpression;
            GridView1.DataSource = dvSortedView;
            GridView1.DataBind();
        }
    }

這樣,您將始終將sortExpression存儲在會話變量中,並且可以在整個應用程序中使用它。

希望這可以幫助!

大致來說,您可以-

  • 當第一個網格的排序參數更改時,將值寫入隱藏字段
  • 移至第二頁時拾取參數並將其附加到查詢字符串
  • 在第二頁上檢索參數,然后進行查詢並相應地對網格進行排序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM