[英]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.