【发布时间】:2011-11-11 15:51:01
【问题描述】:
//Sort User Table
private void SortGridView(string sortExpression, string direction)
{
DataTable dataTable = BindGridView(Session["useremail"].ToString()).Tables[0];
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
dataView.Sort = sortExpression + direction;
UserTable.DataSource = dataView;
UserTable.DataBind();
}
}
protected void gridView_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;
if (GridViewSortDirection == SortDirection.Ascending)
{
GridViewSortDirection = SortDirection.Descending;
SortGridView(sortExpression, " ASC");
}
else
{
GridViewSortDirection = SortDirection.Ascending;
SortGridView(sortExpression, " DESC");
}
}
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection)ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}
当我编辑用户并更新编辑或进行一些搜索,并清除页面加载的搜索并且排序丢失时,
private DataSet BindGridView(string email)
{
.......
}
protected void btnUpdate_Click(object sender, EventArgs e)
{
.....
BindGridView(Session["useremail"].ToString());
}
每次页面加载或某些回发完成时,排序都会丢失如何保留排序。
页面加载
if (PermissionList.Any(item => item.Equals("Edit user")))
{
if (!IsPostBack)
{
BindGridView(Session["useremail"].ToString());
}
}
【问题讨论】:
-
您的 Page_Load 中有什么内容?
-
这与您之前提出的问题基本相同。无论您在哪里 Bind() 数据,您还必须在绑定之前对其进行排序,以便在绑定到控件时对数据进行排序。
-
本来要发布答案的,但劳埃德是我。他的评论是正确的答案。
-
嗨劳埃德,我该怎么做。谢谢
标签: c# asp.net sorting gridview