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

datagrid数据刷新问题,好像很简单,却不是那么容易解决,高手请进!!!

楼主michleliu(浪子听天)2005-04-03 16:48:48 在 .NET技术 / ASP.NET 提问

在web页面上,将DATAGRID控件帮定好数据库(ACCESS),同一个页面中放置一个TEXTBOX控件,之后点击BUTTON,将TEXTBOX里的内容保存到数据库,并用DATAGRID显示出来。  
  在进行这个过程的时候,总是不能及时的刷新DATAGRID,添加完第一条数据后,数据无法立刻显示在DATAGRID中,只能在添加完第二条数据后,才能在DATAGRID中看到添加的第一条数据;添加第三条数据后,才能在DATAGRID中看到第二条数据......以此类推。  
   
  我在保存之后重新调用了DATAGRID的绑定不能达到效果;  
  private   void   BindGrid()  
  {  
  DataView   objDv=XXX;//从数据库读取数据  
  this.GridList.DataSource=objDv;  
  this.GridList.DataBind();  
                                        }  
  我在保存后重定向该页面也还是不行,DATAGRID的绑定在PAGE_LOAD()里面是:  
  if   (!IsPostBack)  
  {  
  this.BindGrid();  
  }  
   
  我以为是缓存的原因,加了:<%@   OutPutCache   Location="None"%>,还是不行;  
  但是如果在调试状态下就可以啊,这是为什么啊?????  
   
  非常苦恼,,希望高手可以指教一下!!谢了!!!  
  (注:UPDATE   和   DELETE   之后结果也是一样)  
  问题点数:40、回复次数:25Top

1 楼karykwan(独行者)回复于 2005-04-03 17:00:43 得分 2

BUTTON的click后就调用BindGrid()重新绑定  
  不行吗?Top

2 楼zippro123(WELAN)回复于 2005-04-03 17:01:11 得分 2

没遇过,帮你顶Top

3 楼yananfu2000(安子)回复于 2005-04-03 17:08:36 得分 2

每次添加之后邦定一下     就可以了!!Top

4 楼hyj_828(水梦)回复于 2005-04-03 17:35:35 得分 2

重绑定。。Top

5 楼michleliu(浪子听天)回复于 2005-04-03 18:56:59 得分 0

谢谢你们了!不过上述方法我早都试过,不行啊!请高手进来看看啊。。。Top

6 楼seconder()回复于 2005-04-03 19:50:59 得分 2

如果你的Button提交事件是Button_Onclick()  
          protected   void   Button_oOnclick()  
                  {  
                        执行你的事件;  
                        //再次调用你的绑定事件  
                        BindGrid();  
                    }  
   
  大概就是这个逻辑,就是在你提交事件里重新绑定数据。  
   
  Top

7 楼coveking(小草)回复于 2005-04-03 19:55:27 得分 2

楼上赞!!^_^Top

8 楼Virus2003(伪装者)回复于 2005-04-03 19:58:27 得分 2

将数据绑定写在一个方法里面,添加信息之后调用这个方法就行了Top

9 楼zhangfire(色狼也可以学.net)回复于 2005-04-03 21:04:49 得分 2

查看一下你的数据源有没有更新,如果数据源的数据确实被更新了,那么肯定问题是出在绑定上。  
  Good   Luck!Top

10 楼michleliu(浪子听天)回复于 2005-04-03 21:27:41 得分 0

重新绑定不能解决啊!~  
   
  请大家仔细看看我说的现象!!!我试过重新绑定了。。。Top

11 楼michleliu(浪子听天)回复于 2005-04-03 21:29:04 得分 0

TO:zhangfire(色狼也可以学.net)  
  谢谢,但是数据源确实也更新了,因为我断点调试的时候是没有问题的。。。Top

12 楼Dergen(白云兮悠悠)回复于 2005-04-03 21:51:13 得分 2

应该是你读取数据库部分有问题,而且就可能是数据缓存的问题Top

13 楼hchxxzx(NET?摸到一点门槛)回复于 2005-04-03 22:55:21 得分 2

我在保存后重定向该页面也还是不行,DATAGRID的绑定在PAGE_LOAD()里面是:  
  if   (!IsPostBack)  
  {  
  this.BindGrid();  
  }  
  -----------------------  
  上面这一句,在重定向该页面时,它会访问的.  
  此句的意思是说:非提交状态下进行读取,提交状态不读取.跟重定向不同.  
  我想你可能是缓存问题.看看你IE的设置,是不是设置了页面不检查.Top

14 楼jhqjhq(逗号)回复于 2005-04-03 23:09:19 得分 2

在提交按牛事件里面再绑定一次,应该没有问题。  
  Top

15 楼michleliu(浪子听天)回复于 2005-04-04 12:43:27 得分 0

我想你可能是缓存问题.看看你IE的设置,是不是设置了页面不检查.  
  -------------------------------------  
  我禁止了页面缓存(<%@   OutPutCache   Location="None"%>),也是不行啊,为什么?  
  对了,怎样查看IE的缓存设置啊???Top

16 楼blackhero(黑侠客)回复于 2005-04-04 13:17:12 得分 2

加一个刷新按钮Top

17 楼fluxayxxx(阿茂)回复于 2005-04-04 13:25:10 得分 2

重新绑定Top

18 楼Joy_Zhao(面具)回复于 2005-04-04 13:26:51 得分 2

cache   problem!Top

19 楼yfmine(扬帆-逆风)回复于 2005-04-04 13:29:28 得分 5

必须在Click事件中调用绑定,就像上面几位已经说了的那样。因为在页面的事件顺序上,Page类的Load事件后才是服务器端控件的事件。也就是说:当你按了按钮回传页面后,服务器先载入Load事件中的绑定DataGrid,然后才处理Click事件中的代码,接着开始调用Page类的Render方法生成页面,最后发送给客户端。所以在已经绑定了DataGrid后才开始添加数据到数据库中,当然看不到刚添加的数据了。Top

20 楼yfmine(扬帆-逆风)回复于 2005-04-04 13:38:44 得分 5

客户发出POST请求-〉创建Page派生类,调用构造函数-〉调用Page类的IHttpHandler.ProcessRequest方法-〉激活Page类的Init事件-〉调用Page类的CreateChildControls虚方法-〉从POST变量和VIEWSTATE中还原服务器端控件状态-〉激活Page类的Load事件-〉激活服务器端控件事件-〉激活Page类的PreRender事件-〉调用Page类的Render虚方法-〉调用Page类的RenderChildren虚方法-〉发送HTTP响应给客户端-〉激活Page类的Unload事件-〉丢弃Page派生类的实例。  
  搞清楚了网页事件的顺序,才能更好的解决问题。。。建议你看看Essential   ASP.NET这本书Top

21 楼michleliu(浪子听天)回复于 2005-04-04 20:50:36 得分 0

谢谢各位了!  
   
  但是问题的解决方法到底是什么啊?我在Button_Click事件中调用了重新绑定啊。。。  
   
  yfmine(随风):为什么我在断点调试就可以呢???Top

22 楼ziffle(国际品牌运动原单:http://shop33388984.taobao.com/ 朋友网店新开,最)回复于 2005-04-05 00:13:44 得分 2

学习:   yfmine(随风)    
  客户发出POST请求-〉创建Page派生类,调用构造函数-〉调用Page类的IHttpHandler.ProcessRequest方法-〉激活Page类的Init事件-〉调用Page类的CreateChildControls虚方法-〉从POST变量和VIEWSTATE中还原服务器端控件状态-〉激活Page类的Load事件-〉激活服务器端控件事件-〉激活Page类的PreRender事件-〉调用Page类的Render虚方法-〉调用Page类的RenderChildren虚方法-〉发送HTTP响应给客户端-〉激活Page类的Unload事件-〉丢弃Page派生类的实例。  
   
   
  private   void   BindGrid()  
  {  
  DataView   objDv=XXX;//从数据库读取数据  
  this.GridList.DataSource=objDv;  
  this.GridList.DataBind();  
   
   
  this.BindGrid();  
   
                                        }  
  Top

23 楼yfmine(扬帆-逆风)回复于 2005-04-05 07:26:31 得分 0

你用的DataSet,确认你的BindGrid方法是在Update后面被调用的,而且看看你的Fill方法是否在Update的后面被执行。Top

24 楼michleliu(浪子听天)回复于 2005-04-05 13:53:26 得分 0

肯定执行了,不然在调试状态怎么就可以呢????Top

25 楼michleliu(浪子听天)回复于 2005-04-05 22:19:11 得分 0

自己搞定,结贴!Top

相关问题

  • datagrid数据刷新问题????????
  • datagrid 数据刷新的问题
  • 如何使用DataEnvironment中的命令刷新DataGrid中的数据
  • 在线急等DATAGRID定时刷新数据
  • 高分求助:arraylist绑定DATAGRID,添加数据,DATAGRID不能刷新显示。
  • DataGrid刷新
  • datagrid控件与ADO的问题。添加了数据,不能自动刷新
  • 关于数据库刷新
  • 刷新数据库索引
  • 数据刷新问题

关键词

  • 数据
  • 页面
  • datagrid
  • 控件
  • 数据库
  • 服务器
  • 解决
  • 客户
  • 调用
  • 事件

得分解答快速导航

  • 帖主:michleliu
  • karykwan
  • zippro123
  • yananfu2000
  • hyj_828
  • seconder
  • coveking
  • Virus2003
  • zhangfire
  • Dergen
  • hchxxzx
  • jhqjhq
  • blackhero
  • fluxayxxx
  • Joy_Zhao
  • yfmine
  • yfmine
  • ziffle

相关链接

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

广告也精彩

反馈

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