在书上看到一个例子。代码如下
sub page_load(ob as object,ev as eventargs)
if page.ispostback=false then
dim myarray(2) as string
myarray(0)="red"
myarray(1)="blue"
myarray(2)="yellow"
color_list.datasource=myarray
end if
databind()
end sub
<html>
<body>
<form runat="server">
<asp:listbox id="color_list" autopostback=true runat="server"/>
<asp:label text=<%#color_list.selecteditem.text%> runat="server"/>
</form>
</body>
</html>书上介绍如果在page_load中去掉page.ispostback的判断时,在page.ispostback=true时再次执行page_load事件中的代码,相当于将数组又再次初始化,此时释放状态信息,当数据绑定时,标签的text属性的值color_list.selecteditem.text已经是一个空对象。会报错。
可是我想不明白。page.ispostback=false时,当执行page_load事件中的databind后,执行text=<#color_list.selecteditem.text%>时不一样也是空的对象吗???????因为此时并没能 对listbox的选项进行选择啊。邦我解答一下吧。谢谢
sub page_load(ob as object,ev as eventargs)
if page.ispostback=false then
dim myarray(2) as string
myarray(0)="red"
myarray(1)="blue"
myarray(2)="yellow"
color_list.datasource=myarray
end if
databind()
end sub
<html>
<body>
<form runat="server">
<asp:listbox id="color_list" autopostback=true runat="server"/>
<asp:label text=<%#color_list.selecteditem.text%> runat="server"/>
</form>
</body>
</html>书上介绍如果在page_load中去掉page.ispostback的判断时,在page.ispostback=true时再次执行page_load事件中的代码,相当于将数组又再次初始化,此时释放状态信息,当数据绑定时,标签的text属性的值color_list.selecteditem.text已经是一个空对象。会报错。
可是我想不明白。page.ispostback=false时,当执行page_load事件中的databind后,执行text=<#color_list.selecteditem.text%>时不一样也是空的对象吗???????因为此时并没能 对listbox的选项进行选择啊。邦我解答一下吧。谢谢
解决方案 »
- =====分不多了,求教一个excel数据导入datagridview的问题=====
- 服务器控件本地测试无响应
- 今天下午写了一个基于数据集的通用数据库操作类,将数据库的操作抽象出来,散分^^
- 可不可在程序中,自由增减数据库表中的字段,以便满足栏目的需求??
- 我想从现在开始学习ASP.NET,请前辈们给个下手的建议。
- 元素***不是已知元素,原因可能是网站中存在编译错误
- 关于危险代码的处理的问题!
- .net 调试js的问题
- 关于email发送附件的问题
- 在dos状态下:csc /target:library /out:MyLibrary.DLL *.cs 出错
- List中怎样控制字符的个数啊?
- iis安装以后,浏览aspx网页报错(HTTP 500 内部服务器错误),htm没问题,
提交过后再加载就是false了
如果不加这句的话,不管你选择什么,TextBox都不会有值
if page.ispostback=false then '此处判断是否为第一次请求页,如果是下面的将执行,否则不执行
dim myarray(2) as string '定义数组
myarray(0)="red" '以下对数组初始化
myarray(1)="blue"
myarray(2)="yellow"
color_list.datasource=myarray '将color_list的数据源设为myarray数组
end if '如果是第一次请求页则以上的代码将被执行,否则直接执行下面的代码
databind() '将color_list与数据源myarray进行绑定,自己想想,如果是第二次访问会怎么样?
end sub
<html>
<body>
<form runat="server">
<asp:listbox id="color_list" autopostback=true runat="server"/>
<asp:label text= <%#color_list.selecteditem.text%> runat="server"/>
</form>
</body>
</html>
在你提交时页面一回调,你所写的内容就又会没有的
所以在ispostback = false即页面不回调时就显示出来
当你访问页面的时候,这时在服务器端创建的页面对象的IsPostBack属性为false
当你对这个页面进行提交的时候 (比如button点击了一下提高数据)这时会把你页面控件里的值回传给服务器,
然后服务器就又创建了一个新的页面对象,并且从页面的ViewState中读取回传到服务器的信息
这个新的页面对象的IsPostBack属性就为true了 。
你可以看一下ASP页面的生产周期。