欢迎光临
我们一直在努力

不该错的问题:IsPostBack in ASP.NET, Programming with DataGrid-.NET教程,Asp.Net开发

建站超值云服务器,限时71元/月

唉,现在才发现,原来在asp.net中ispostback属性是多么的重要……

一般是在page_load中检查是否是第一次加载本页或是判断是否是用户提交(postback)

if (!ispostback) {

//do something

}

在用datagrid访问和更新数据库时没有注意到这个问题,会出现各种各样的奇怪问题,比如我的这种.

问题描述:

用datagrid访问和更新数据库(sql server –northwind –table name:categories –query :select categoryid,categoryname,description form categories ),除了更新操作以外,其它功能ok.对datagrid进行如下操作:点击“编辑”,相应的行数据变为可编辑,同时编辑按钮被“更新”和“取消”代替。对数据进行编辑,如把description中的aaa改为bbb。再点“更新”按钮。本意是想用此方法将修改后的数据(bbb)代替数据库中原有的aaa,当然是用update方法了。但在点“更新”后,数据没有改变,我做过测试,update方法是有效的,也就是说,update方法更新的不是新数据,而是没有修改前的旧数据,造成数据没有更新(实际上是更新了)。要注意的是我的page_load事件如下

private void page_load(object sender, system.eventargs e)

{

// 在此处放置用户代码以初始化页面

olead.fill(ds);//olead–oledbadapter

dg.databind();//dg–datagrid

}

分析问题(个人推测,请指正):

由于没有用ispostback判断是否是第一次加载此页面,所以不管什么情况下只要有postback,都会对dg(datagrid)进行数据绑定。所以在进行任何的sumbit后,dg都会去数据库绑定数据而不理会页面中的数据。

当对选中的数据进行修改完毕后,在点“更新”时,提交此页面修改的数据,而马上遇到page_load事件,不等对修改数据进行处理,服务器就先生成原页面(ms用这种方法提高速度?),发现dg.databind(),执行之,于是放弃数据库更新,于是看不到更新结果了。

解决问题:

解决倒是很简单,page_load事件中加上对ispostback的判断就可以了。

private void page_load(object sender, system.eventargs e)

{

// 在此处放置用户代码以初始化页面

olead.fill(ds);//olead–oledbadapter

if(!ispostback)

{

dg.databind();//dg–datagrid

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 不该错的问题:IsPostBack in ASP.NET, Programming with DataGrid-.NET教程,Asp.Net开发
分享到: 更多 (0)

相关推荐

  • 暂无文章