CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

如何让PageLoad()中的某段代码只执行一次呢

楼主juziE2006(橘子)2005-08-01 08:43:23 在 .NET技术 / ASP.NET 提问

private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  if   (!IsPostBack)  
  {   int   id=0;  
            id=Convert.ToInt32(Request.QueryString["depart"].ToString());  
    Session["id"]=id.ToString();  
   
                                 
  bindgrid();  
  }  
  }  
  bindgrid是reapter控件绑定数据库的语句,我用session来作为查询条件,在翻页的时候会重新执行if(!IsPostBack)里的全部代码,所以session的值发生改变,由于在翻页时得不到index传来的参数depart,仍然执行Session["id"]=id.ToString();所以出错了.请问如何在翻页时bindgrid();前面的语句只执行一次来保证session["id"]始终为index传来的参数depart 问题点数:10、回复次数:14Top

1 楼smin1994(smin1994)回复于 2005-08-01 08:53:12 得分 0

把Request.QueryString["depart"].ToString()存入字符串!  
  利用try...catch...做处理应该可以!  
  你试试Top

2 楼ZhangYaoxing(westxx)回复于 2005-08-01 08:58:24 得分 0

觉得楼主的思维可能还是受到asp等语言的影响。通过事件中重新绑定数据源来翻页,而不要重新装入页面应该就可以了吧Top

3 楼yzsb1118(我)回复于 2005-08-01 09:07:26 得分 0

做标记,有很多方法的,动态向网上创建隐藏控件,或者在服务器上创建临时文件来做标记也行,总之方法太多了!Top

4 楼eyych(2006)回复于 2005-08-01 09:08:15 得分 0

同意:ZhangYaoxing(westxx)    
  怎么还用Session分页??。。。Top

5 楼fxmpch(梦中明月)回复于 2005-08-01 09:13:48 得分 0

加一个判断:  
  if   Session("id")   is   nothing   then  
        Session["id"]=id.ToString();  
  else  
   
  end   ifTop

6 楼juziE2006(橘子)回复于 2005-08-01 09:40:09 得分 0

通过事件中重新绑定数据源来翻页  
  能不能具体点呢Top

7 楼lalala2000()回复于 2005-08-01 09:53:40 得分 0

不如放到Page_init()事件中(好象有的)Top

8 楼juziE2006(橘子)回复于 2005-08-01 10:02:36 得分 0

现在的问题是int   id=0;  
            id=Convert.ToInt32(Request.QueryString["depart"].ToString  
  这两句代码会重复执行,所以出错了Top

9 楼sosososo(流浪者)回复于 2005-08-01 10:09:51 得分 0

应该是你重新装入页面的问题  
  翻页按钮不要用超链接的方式Top

10 楼xqsman(@_@)回复于 2005-08-01 10:40:00 得分 0

把depart保存到HtmlInputHidden,写一个脚本函数改变depart然后submitTop

11 楼mathsword(梦在流浪)回复于 2005-08-01 10:55:50 得分 0

放到viewstate中就可以了Top

12 楼iceqings(小西瓜)回复于 2005-08-01 11:06:24 得分 10

使用IsPostBack  
   
  让里面的程序只运行一次  
   
  就可以了  
   
  实例:  
   
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
   
  {  
   
                        你要重复执行的代码  
   
                                                              if   (!IsPostBack)  
   
                                                              {  
   
                                                              你只要运行一次的代码  
   
                                                                }  
   
                                      }Top

13 楼jimu8130(火箭的未来在哪里?)回复于 2005-08-01 11:26:56 得分 0

觉得应该设置个标记Top

14 楼shamao(稳重,踏实,责任)回复于 2006-04-15 19:13:50 得分 0

CSDN搜索-->PageLoad。  
  或参考:  
  http://community.csdn.net/Expert/topic/4452/4452718.xml?temp=.7898371  
  Top

相关问题

  • 定时执行某段代码~
  • 如何获得某段代码的执行时间(vc)谢谢
  • CB中如何测试某段代码的执行时间
  • 我想在Debug中执行某段代码,在Release中执行另一段代码,应该怎么写?
  • 请问如何实现在IE浏览器关闭时执行某段ASP代码?
  • 在PageLoad中为什么会执行两次If Not IsPostBack 中的代码
  • VB.NET能否用代码执行代码?
  • 动态执行代码
  • 自动执行代码
  • 新手问题,如何计算程序中某段代码的运行时间?

关键词

  • 代码
  • 执行
  • 翻页
  • depart
  • ispostback
  • bindgrid
  • 标记
  • 绑定
  • querystring
  • tostring

得分解答快速导航

  • 帖主:juziE2006
  • iceqings

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo