2012-09-13 56 views
-1

我有一个网格视图,我有5-6列,我已经在gridview上进行了排序,它可以通过每列的标题排序。现在我想要的是,我想保留排序标准,当用户再次登录我的网站时,他会发现网格按照他以前选择的列进行排序。 请帮我使用Cookies来实现这一点。在asp.net中保留gridview排序

+0

请帮助我,因为我需要它在这里。非常感谢:) :) –

回答

1

您需要将此标准存储在某些持久性媒体中,以便存储磁盘文件或数据库,哪些更适合您的情况。

+0

OP的请求完全可以使用cookie进行操作。这些数据与安全无关,只是记住显示偏好。自从数据库出现以来,没有必要将每个独特访客的每种排序偏好存储到网站中。 – KeithS

+0

您是正确的,但cookie会绑定到服务器的每个请求,因此通过将数据移动到cookie可以增加到达服务器的数据量并略微减慢所有用户请求 – MichaelT

+0

而且您需要查询用户数据库偏好,减缓服务器端响应。我们正在讨论每个cookie最多* 4KB; ViewState占用的平均网站更多。 – KeithS

2

基本上,您希望处理Sorting事件,当用户通过单击gridview列标题链接之一触发回发时,该事件在运行时引发服务器端。您的处理程序将获得一个GridViewSortEventArgs对象,其中包含正在排序的表达式和正在排序的方向。只需在一些可逆的方式将这些转换成字符串,然后添加数据在Cookie为您的网站:

Response.Cookies["myPageCookie"]["SortCriteria"] = e.SortExpression + "|" + e.SortDirection; 

...在页面的加载处理程序,如果负载不是回发(这意味着它是“第一次”加载),尝试从Request.Cookies集合中获取页面排序条件的Cookie,如果存在,加载数据后调用GridView.Sort()传入此数据。