继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

铵钮提交事件PostBack之后,一些动态加载的物件丢失

linux快速入门培训
关注TA
已关注
手记 266
粉丝 31
获赞 120

今早起来,发现skype有网友留言,情况大约如下,不过Insus.NET还是先感谢网友的测试。
http://www.cnblogs.com/insus/p/3193619.html  如果你有看此篇博文。而且照做之后,在运行时,会有点不正常显示。如:




"大神,你在演示能正确运行吗?为何我测试时,会出现这个样子,由于每一步都照着做的。"

OH, Insus.NET在做演示时,确出有出现这个异常,不过没有看得它是很严重,因为平时见多了,只是稍微调整一下,就可以了。当时一出现这个异常时,只是去了用户控件的Page_Load事件的,把一个IsPostBack判断拿掉



拿掉了,程序可以运行了!!!


由于PostBack的原因,一个物件在PostBack之后,不再保存。如果我们一定要Page_Load事件,添加那个判断。而且在网页Page_Load或用户控件的Page_Load事件,都添加IsPostback判断,那怎么办?

好的,我们先去改一下程序,把网页和用户控件,均加上IsPostBack的判断。

 




添加判断之后,程序运行起来,在PostBack之后,动态添加部分肯定会消失。要怎样解决呢?看看Insus.NET怎样着手。
在Repeater控件中,添加一个OnItemCreated事件:



去.aspx.cs代码页写上面事件处理逻辑,把OnItemDataBound事件内的代码拷贝至OnItemCreated事件中,稍作一些修改。


上图的OnItemCreated事件中,只是做了动态加载用户控件。拿掉了为用户控件赋值的代码。而OnItemDataBound事件呢?看看下图:



刚好相反,这个事件中,拿掉动态加载用户控件的代码,改写为赋值的功能。
为什么需要这样写,它就能正常运行?
因为OnItemCteated事件,每在PostBack之后,它都会运行,而OnItemDataBound事件,它只会运行一次。

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP