ASP.NET 分页中的搜索条件以什么形式存储最好,cookies太麻烦
ASP.NET 分页中的搜索条件以什么方式存储最好,cookies太麻烦
ASP.NET 分页中的搜索条件以什么方式存储最好,cookies太麻烦,老是刷新不即时,要刷两次才出正确的结果
因为一般列表页,都有很多种搜索方式,常见的三种。
1.比如地址栏过来的搜索条件也就是url方式,
2.也有按钮提交的搜索也就是post方式,
3.还有DropDownList跳转后的方式
我用cookies存储的时候在每种搜索方式都要进行相应的处理,进行再次刷新才能出正确的结果,不然都得刷新两次,或搜索两次才能出正常的结果!
请高手指点下,给个最好的方式,最好能详细点!
------解决方案--------------------
我觉得还是得看实际情况吧!
1. 放地址栏里面是最方便的,虽然放上去不好看,安全方面,可以写程序的过程中来弥补,比如说,在查询前做一些校验,过滤掉一些非法的参数。
2. 放到session里面比较省心,不过前提是没有在iis里面做负载均衡,如果涉及到多台web服务器,而你的session是放在服务器内存里面,状态容易丢失;如果只是单台的web服务器,放session里面也是比较方便的。
3. cookie的话,放得最长久,哪怕你关闭了浏览器,刷新不及时的问题应该是你操作cookie有误所导致,操作cookie要注意几个方面:
1). cookie是通过domain和path来控制作用范围的,尤其是后面那个属性,js中经常操作cookie失效,主要是由于没有设置path的原因
2). 如果你通过asp.net后台的response来设置cookie,那么,要注意response只有返回到客户端,才能影响cookie的值,如果是ajax的方式,可能你在服务端已经设置了cookie,但是它这个响应没有返回客户端,导致客户端的cookie并没有被修改。
4. 如果在webform下,用viewstate是个不错的选择
5. 如果使用asp.net mvc,用ViewData来缓存查询条件吧
------解决方案--------------------
地址栏最实际吧
------解决方案--------------------
一般情况下都是直接url传值
------解决方案--------------------
URL 传参
------解决方案--------------------
你的分页用url传的肯定是翻页之后viewstate不在了。
------解决方案--------------------
回答的很详细了
------解决方案--------------------
ViewState关掉了?
------解决方案--------------------
页面刷新的用 url储存
局部刷新的用 隐藏域储存
------解决方案--------------------
我用viewState分页表示毫无压力,。
------解决方案--------------------
通过URL传递参数吧,配合使用AspNetPager,我一直这么做的。
比如一个列表查询页面:
1、进入页面后首先根据Url参数构造查询条件,同时设置页面上查询项目的值,
2、根据查询条件,查询数据,
3、分页处理,使用AspNetPager,可以自动生成分页列表,并且参数都被自动保存下来,分页的时候也不会出问题,
4、点击查询的时候,将各个查询参数绑定到Url上重新加载这个页面。
这样没有使用ViewState,没有Session,没有cookie,搜索引擎也比较容易收录吧
------解决方案--------------------
ViewState保存在当前页面中,Seesion保存在服务器,Cookie保存在浏览器,ViewState进入一个新的页面,当然就没了。
ASP.NET 分页中的搜索条件以什么方式存储最好,cookies太麻烦,老是刷新不即时,要刷两次才出正确的结果
因为一般列表页,都有很多种搜索方式,常见的三种。
1.比如地址栏过来的搜索条件也就是url方式,
2.也有按钮提交的搜索也就是post方式,
3.还有DropDownList跳转后的方式
我用cookies存储的时候在每种搜索方式都要进行相应的处理,进行再次刷新才能出正确的结果,不然都得刷新两次,或搜索两次才能出正常的结果!
请高手指点下,给个最好的方式,最好能详细点!
------解决方案--------------------
我觉得还是得看实际情况吧!
1. 放地址栏里面是最方便的,虽然放上去不好看,安全方面,可以写程序的过程中来弥补,比如说,在查询前做一些校验,过滤掉一些非法的参数。
2. 放到session里面比较省心,不过前提是没有在iis里面做负载均衡,如果涉及到多台web服务器,而你的session是放在服务器内存里面,状态容易丢失;如果只是单台的web服务器,放session里面也是比较方便的。
3. cookie的话,放得最长久,哪怕你关闭了浏览器,刷新不及时的问题应该是你操作cookie有误所导致,操作cookie要注意几个方面:
1). cookie是通过domain和path来控制作用范围的,尤其是后面那个属性,js中经常操作cookie失效,主要是由于没有设置path的原因
2). 如果你通过asp.net后台的response来设置cookie,那么,要注意response只有返回到客户端,才能影响cookie的值,如果是ajax的方式,可能你在服务端已经设置了cookie,但是它这个响应没有返回客户端,导致客户端的cookie并没有被修改。
4. 如果在webform下,用viewstate是个不错的选择
5. 如果使用asp.net mvc,用ViewData来缓存查询条件吧
------解决方案--------------------
地址栏最实际吧
------解决方案--------------------
一般情况下都是直接url传值
------解决方案--------------------
URL 传参
------解决方案--------------------
你的分页用url传的肯定是翻页之后viewstate不在了。
------解决方案--------------------
回答的很详细了
------解决方案--------------------
ViewState关掉了?
------解决方案--------------------
页面刷新的用 url储存
局部刷新的用 隐藏域储存
------解决方案--------------------
count = pg.GetCount();
if (!IsPostBack)
{
int pagecount = 10;
int pageindex = 1;
Repeater1.DataSource = pg.SelectAllDataset(pageindex, pagecount);
Repeater1.DataBind();
ViewState["pageindex"] = 1;
ViewState["paixu"] = "";
if (count / 10 == 0)
{
pageco = count / 10;
}
else
{
pageco = (count / 10) + 1;
}
ViewState["pageco"] = pageco;
}
我用viewState分页表示毫无压力,。
------解决方案--------------------
通过URL传递参数吧,配合使用AspNetPager,我一直这么做的。
比如一个列表查询页面:
1、进入页面后首先根据Url参数构造查询条件,同时设置页面上查询项目的值,
2、根据查询条件,查询数据,
3、分页处理,使用AspNetPager,可以自动生成分页列表,并且参数都被自动保存下来,分页的时候也不会出问题,
4、点击查询的时候,将各个查询参数绑定到Url上重新加载这个页面。
这样没有使用ViewState,没有Session,没有cookie,搜索引擎也比较容易收录吧
------解决方案--------------------
ViewState保存在当前页面中,Seesion保存在服务器,Cookie保存在浏览器,ViewState进入一个新的页面,当然就没了。