【发布时间】:2011-10-29 08:54:24
【问题描述】:
我有两个我不确定是否相关的问题:
我有两个 DropDownList 控件(最初设置为不可见)和一个 RadioButtonList 控件,其中自动回发行为设置为 true。
每当回发发生时,我都想从 RadioButtonList 控件中读取 SelectedValue 属性 - 并根据这一点,使 DropDownLists 之一可见。
这是我的问题:
1) 我不能通过 ID 直接引用 RadioButtonList 控件。 Designer.cs 文件似乎没有生成 RadioButtonList 或 DropDownList 控件。即使我手动将控件添加到 Designer.cs 文件,它们在重新生成时也会丢失。这是预期的行为吗?
2) 我尝试在 Page_Load() 方法中使用 Page.FindControl 属性。
if(Page.PostBack==true)
{
RadioButtonList rbl = (RadioButtonList)Page.FindControl("RadioButtonList1");
if(rbl.SelectedValue=="optionA")
{
DropDownList ddA = (DropDownList)Page.FindControl("DropDownListA");
ddA.Visible = true;
}
else
{
DropDownList ddB = (DropDownList)Page.FindControl("DropDownListB");
ddB.Visible=true;
}
}
但是我在 if 条件下得到了 NullReferenceException。
我完全走错了吗?有人会指导我实现我想做的最佳方式吗?
另外,我该怎么做才能让 Designer.cs 文件加载控件?
编辑:/facepalm
我自己想通了。我忘记了我在表格中使用控件。
将控件移到表格之外后,我可以直接引用 ID。
应该归咎于缺乏睡眠和咖啡。我很抱歉。感谢您的帮助!
【问题讨论】:
标签: c# asp.net code-behind