首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

ASP.NET 关于url分页的疑问解决思路

2012-04-01 
ASP.NET 关于url分页的疑问实现url分页格式如:http://localhost/userlist.aspx?page2疑问:如何存储查询语

ASP.NET 关于url分页的疑问
实现url分页格式如:http://localhost/userlist.aspx?page=2

疑问:
如何存储查询语句????????
protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
  {
  string sql = "select * from users"; //一般在这里初始化查询语句

  使用url分页后,切换页码时,页面的if(!IsPostBack)总是成立,带条件查询的sql语句(如搜索数据后的sql语句)就会被重置为"select * from users"; ,而不是条件查询后的sql语句。
  如果使用Session保持sql语句,如果Session不失效的话,关闭页面、重新打开后,页面还是保留了上次搜索的数据,默认应该是全部数据select * from users。


问:如何解决以上问题

[解决办法]
在!IsPostBack里面加一个判断
if(Request.QueryString["page"]!=null)
{
你的分页代码
}
else
{
string sql = "select * from users"; //一般在这里初始化查询语句
}
[解决办法]
刚刚的帖子
[解决办法]

探讨
引用:
在!IsPostBack里面加一个判断
if(Request.QueryString["page"]!=null)
{
你的分页代码
}
else
{
string sql = "select * from users"; //一般在这里初始化查询语句
}


if 成立,sql=null 下面带sql参数的方法不是出错了。。。

[解决办法]
当然,重新Get方式访问一个页面,那么只有url可以传参数了,原来的状态也全都丢失了。你的页面上只有一个简单的数据列表吗?那么你的页面实在是太简单了。实际上好的应用程序,页面上不仅仅只有数据列表,还有许多其它的组件,所有的东西都需要保存用户操作过程中的状态。如果你选择重新定向到新的页面(而不是asp.net回发以及维系ViewState的机制),那么你就要自己处理这些状态丢失的全部问题。

如果追逐比较流行的编程,那么就可以完全使用ajax来处理交互,而从来不回发。否则,你就使用asp.net传统web form机制来编程。

至于Session集合,我要提醒你的是这是会话范畴的,而不是页面范畴的。会话和页面相信你可以分的清楚。如果你在仅仅需要控制页面范畴的数据时,使用了大的范畴,那么很快等你做复杂一点的程序就会遇到很多数据混乱情况。

热点排行