到底那里出错了?

cutesun 2002-06-07 11:55:01
<script language="VB" runat="server">
sub Page_Load(obj as Object, e as EventArgs)
if not Page.IsPostBack then
'create an array of colors
dim arrColors() as string = _
{"red", "orange", "yellow", "green", _
"blue", "indigo", "violet"}

lbColors.DataSource = arrColors
end if
DataBind()
end sub
</script>

<html><body>
<form runat="server">
<asp:Listbox runat="server" id="lbColors"
width="150"
AutoPostBack="true"
SelectionMode="Single" >
</asp:Listbox><p>

<asp:Label id="lblMessage" runat="server"
Text='<%# lbColors.SelectedItem.Text %>' />
</form>
</body></html>
*********************************************
错误信息
“/”应用程序中的服务器错误。
-----------------------------
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。
...全文
48 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunhi 2002-06-08
  • 打赏
  • 举报
回复
你的code <asp:Label id="lblMessage" runat="server"
Text='<%# lbColors.SelectedItem.Text %>' />
是要绑定控件lbColors的SelectedItem.Text 属性值,但是你在pag_loda中并没有对 lbColors进行数据邦定,因为DataBind()相当于Page.DataBind();
所以lbColors的items为null,那控件lblMessage邦定肯定为null,所以会引发异常。
cutesun 2002-06-08
  • 打赏
  • 举报
回复
谢谢 yunhi(yunhi) 根据你的建议,我修改了代码如下
终于可以正常运行了 你知道为什么 开始的代码不能运行么?
我觉得没有错呀!
******************************************************
<script language="VB" runat="server">
sub Page_Load(obj as Object, e as EventArgs)
if not Page.IsPostBack then
'create an array of colors
dim arrColors() as string = _
{"red", "orange", "yellow", "green", _
"blue", "indigo", "violet"}

lbColors.DataSource = arrColors
end if
lbColors.DataBind()
end sub
sub lbColors_SelectedIndexChanged(obj as Object, e as EventArgs)
lblMessage.Text=lbColors.SelectedItem.Text
end sub
</script>

<html><body>
<form runat="server">
<asp:Listbox runat="server" id="lbColors"
width="150"
AutoPostBack="true"
OnSelectedIndexChanged="lbColors_SelectedIndexChanged"
SelectionMode="Single" >
</asp:Listbox><p>

<asp:Label id="lblMessage" runat="server" />
</form>
</body></html>
yunhi 2002-06-08
  • 打赏
  • 举报
回复
This is C# Code-Binder:
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
string[] arrColors={"red", "orange", "yellow", "green", "blue", "indigo", "violet"};
lbColors.DataSource = arrColors;
lbColors.DataBind();
}
}

private void lbColors_SelectedIndexChanged(object sender, System.EventArgs e)
{
lblMessage.Text=lbColors.SelectedItem.Text;
}

aspx Page Code:
<html><body>
<form runat="server">
<asp:Listbox runat="server" id="lbColors"
width="150"
AutoPostBack="true"
SelectionMode="Single" >
</asp:Listbox>
<p>
<asp:Label id="lblMessage" runat="server"/>
</form>
</body></html>

yunhi 2002-06-08
  • 打赏
  • 举报
回复
try again:
sub Page_Load(obj as Object, e as EventArgs)
if not Page.IsPostBack then
'create an array of colors
dim arrColors() as string = _
{"red", "orange", "yellow", "green", _
"blue", "indigo", "violet"}

lbColors.DataSource = arrColors
lbColors.DataBind()

end if
TINA 2002-06-08
  • 打赏
  • 举报
回复
很可能是在System.Web.UI.Page中
忘了加
protected System.Web.UI.WebControls.Listbox lbColors;
声明

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧