6-6 文件阅读编辑(路径的操作和文件的读写):
该DropDownList控件为静态创建控件?静态控件在页面刷新后,控件状态仍然保存?
自我解答:在文件阅读编辑(读取显示)这一章节,在ReadAllText子页面中,文本框是静态创建的,每当点击保存按钮后,文本框中的内容并没有丢失,因此在服务器对回传页面进行编译时,才能通过btn_save_click事件对文本框内容的改变进行保存;
文本阅读编辑(页面的控制)
在PageLoad事件中动态创建母版页的菜单列表,那么每次载入PageLoad事件时,菜单的状态是否会被保存?
关于4-3动态创建控件:
代码如下:
此时,运行效果如下:
首次进入页面:
在文本框中输入4,点击右侧按钮,运行效果如下:
点击左侧按钮,运行效果如下:
此时,再次点击右侧按钮,动态文本框消失,运行效果如下:
解释:
第一点:
我们的动态文本框是在左侧按钮的后台代码中动态创建的,点击创建按钮,首先提交页面,再执行PageLoad事件,最后执行创建按钮的后台代码,动态文本框创建成功;而此时点击计数按钮,首先提交页面,再执行PageLoad事件,而PageLoad事件的后台代码是空的,最后在执行计数按钮的后台代码,因此,在这一次的提交当中,并没有动态文本框被创建,因此动态文本框消失。对此,我推测,动态文本框的生命周期为本页面;
第二点:
静态文本框在第一次载入时,不显示内容。当输入内容后,无论点击创建按钮还是计数按钮,文本框的状态值都不发生变化。
对此,为了实现点击计数按钮后,动态创建的文本框不消失,我们将创建按钮的后台代码写入PageLoad事件中,如下:
运行效果:
首次载入页面:
在文本框中刚输入数字,点击创建按钮和计数按钮后,效果一样:
此时,再次点击创建或计数按钮,动态文本框及内容仍然保留,如下:
深度思考:实质上,在PageLoad事件中,动态文本框之所以被创建成三个,是因为通过try { i = Int16.Parse(TextBox1.Text); }这条语句将静态文本框的内容进行了捕获。这进一步说明,在页面发生回传时,静态文本框的内容是可以被保存下来的;