关于asp.net自己总结的问题

6-6 文件阅读编辑(路径的操作和文件的读写):

该DropDownList控件为静态创建控件?静态控件在页面刷新后,控件状态仍然保存?

自我解答:在文件阅读编辑(读取显示)这一章节,在ReadAllText子页面中,文本框是静态创建的,每当点击保存按钮后,文本框中的内容并没有丢失,因此在服务器对回传页面进行编译时,才能通过btn_save_click事件对文本框内容的改变进行保存;

文本阅读编辑(页面的控制)

在PageLoad事件中动态创建母版页的菜单列表,那么每次载入PageLoad事件时,菜单的状态是否会被保存?


关于4-3动态创建控件:

代码如下:



此时,运行效果如下:

首次进入页面:


在文本框中输入4,点击右侧按钮,运行效果如下:


点击左侧按钮,运行效果如下:


此时,再次点击右侧按钮,动态文本框消失,运行效果如下:


解释:

第一点:

我们的动态文本框是在左侧按钮的后台代码中动态创建的,点击创建按钮,首先提交页面,再执行PageLoad事件,最后执行创建按钮的后台代码,动态文本框创建成功;而此时点击计数按钮,首先提交页面,再执行PageLoad事件,而PageLoad事件的后台代码是空的,最后在执行计数按钮的后台代码,因此,在这一次的提交当中,并没有动态文本框被创建,因此动态文本框消失。对此,我推测,动态文本框的生命周期为本页面;

第二点:

静态文本框在第一次载入时,不显示内容。当输入内容后,无论点击创建按钮还是计数按钮,文本框的状态值都不发生变化。


对此,为了实现点击计数按钮后,动态创建的文本框不消失,我们将创建按钮的后台代码写入PageLoad事件中,如下:

运行效果:

首次载入页面:


在文本框中刚输入数字,点击创建按钮和计数按钮后,效果一样:


此时,再次点击创建或计数按钮,动态文本框及内容仍然保留,如下:


深度思考:实质上,在PageLoad事件中,动态文本框之所以被创建成三个,是因为通过try { i = Int16.Parse(TextBox1.Text); }这条语句将静态文本框的内容进行了捕获。这进一步说明,在页面发生回传时,静态文本框的内容是可以被保存下来的;





猜你喜欢

转载自blog.csdn.net/weixin_38887666/article/details/80344693