asp:EditCommandColumn的问题解决

这是我期望达到的效果,即按了“编辑”按钮之后,在EditCommandColumn之前的BoundColumn里的Editbox中,显示的是数据库中帮定的行的内容

 

而之前的页面的页面如下:

出现的错误情况是:点击“编辑”按钮一下,没有反应,非要点击几下才会出现Editbox,同样的情况出现在“更新”和“取消”按钮上。

 

之后的问题原因找到是IsPostBack 的原因,我写了一个LoadData()函数,用来绑定数据库到DataGrid控件,结果不小心把IsPostBack 写进了这个函数,然后再很多函数中调用这个函数,包括EditCommand,UpdateCommand,DeleteCommand,CancelCommand等处理函数中,也调用了这个函数,结果出现了上述的情况。

之后我把这个IsPostBack删除,只写道Page_Load函数中,就一切正常了。

 

IsPostBack

在MSDN中的解释是:

.NET Framework 类库 
Page.IsPostBack 属性 

获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。

命名空间:System.Web.UI
程序集:System.Web(在 system.web.dll 中)

而其他找到的资料是这么说的:

IsPostBack是为了:

在ASP.NET使用Page.IsPostback,那么就可以避免往返行程上的额外工作:如果处理服务器控件回发,通常需要在第一次请求页时执行代码,该代码不同于激发事件时用于往返行程的代码。如果检查?Page.IsPostBack?属性,则代码可按条件执行,具体取决于是否有对页的初始请求或对服务器控件事件的响应。这样做似乎很明显,但实际上可以忽略此项检查而不更改页的行为。该属性用的好坏,直接关系到你程序运行是否按照你最初的意愿,也关系到整个页面的效率。因为,如果每次都会给控件绑定数据,不管你是第一次访问,还是提交了数据以后,那么这个页面程序的效率可想而知。

IsPostBack指判断该webform是否为响应客户端而发的
简单来说就是判断是否是webform首次访问
IsPostBack所指一般为第二次及其以后的访问
IsPostBack才为首次访问

个人总结是:

在点击服务器控件的时候,如Button等时,每点击一次,如果没有IsPostBack判断,就会从数据库中重新绑定数据到DataGrid,然后刷新页面,这就是往返行程的代码,而重新刷新后在页面中的输入数据,则会被忽略而不被交换到服务器端。

所以要用Page.IsPostBack来判断一下。

不过还是没有很理解,再找点资料看看吧!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值