将另一页上的GridView排序为在前一页上排序
本文关键字:排序 一页 GridView | 更新日期: 2023-09-27 18:15:33
我有一个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就一直存储在会话变量中,你可以在整个应用程序中使用它。
希望这对你有帮助!
作为一个粗略的轮廓,你可以-
- 当第一个网格的排序参数时,将值写入隐藏字段改变
- 移动到第二页时选择该参数并将其追加到参数
- 在第二页上从查询和中检索参数对网格进行排序