首页 新闻 会员 周边 捐助

c#/.net的Listview后台绑定数据时为何要先判断 IsPostBack?如图。

0
悬赏园豆:15 [待解决问题]

如图,我在Listview里添加了几个列,那个Button1列是用来打开 EditTemplate模板的。
现在的情况是我在后台没有判断IsPostBack就绑定了数据源。然后页面可以显示数据、但是我点 编辑时 并没有如愿弹出编辑框 EditTemplate,而是报了下图这个错:

 

这个错误,我后台绑定数据源前先判断if(!IsPostBack)就可以了。
可是我搞不懂背后的原理啊,求指点。

liangtonali的主页 liangtonali | 初学一级 | 园豆:187
提问于:2015-12-19 13:52
< >
分享
所有回答(4)
0

你寫在Page_Load裡?

我舉個例子,假設你今天更新(update)一筆資料,.NET的流程是:

Page_Load(你重新binding data) -> 你的更新邏輯

以上流程會有個問題,你的資料還沒更新,就被你重新binding覆蓋了,.NET為避免這個錯誤,設計了這個驗證制度。

至於為什麼加上if (!IsPostBack)就不會報錯,是因為任何insert、update、delete都是PostBack動作,而上面的判斷而避開了資料被覆蓋的問題,所以不會觸動.NET的驗證機制。

RosonJ | 园豆:4910 (老鸟四级) | 2015-12-21 10:22
0

ispostback意思是是否为回传(我自己的理解),在你第一次加载的时候肯定不是回传,当你向服务器发送请求调用你这个程序的话,就属于回传了.所以很多时候我们都加上if(!ispostback){}

只能穷开心 | 园豆:184 (初学一级) | 2015-12-27 12:24
0

只在第一次 才加载 所以需要 !IsPostBack

docker_net | 园豆:230 (菜鸟二级) | 2016-01-15 10:29
0

判断是否首次加载,页面刷新的时候用。如果有的数据页面不需要刷新就可以通过  if(!isIsPostBack){}来做判断了。求给分需要用呢!

落花〆、春雨鸣 | 园豆:3 (初学一级) | 2016-01-26 18:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册