-2

我在我的 asp 页面中使用 sql 数据源创建了一个网格。所以排序是在构建控件中使用 asp.net 自动完成的(在 vb.net 中没有添加用于排序的代码)。

但是如果我刷新页面或转到其他页面,排序顺序就会消失。

有没有办法捕捉之前的排序顺序(排序方向和排序表达式)?

4

1 回答 1

2

在页面PreRender事件中,将当前值GridView.SortDirectionGridView.SortExpression属性存储在,例如Session

this.Session[this.GetType().FullName + ".GridView.SortDirection"] = this.GridView.SortDirection;
this.Session[this.GetType().FullName + ".GridView.SortExpression"] = this.GridView.SortExpression;

在页面Init事件上执行此代码:

if (!this.IsPostBack && this.Session.Contains(this.GetType.FullName + ".GridView.SortDirection"))
{
    this.GridView.SortDirection = (SortDirection)this.Session[this.GetType().FullName + ".GridView.SortDirection"];
    this.GridView.SortExpression = (string)this.Session[this.GetType().FullName + ".GridView.SortExpression"];
}
于 2012-11-13T15:24:20.553 回答