[英]No control created on page_load
我有一个Asp页面,其中包含2个单选按钮以及其他文本框和标签。 问题是,当选中单选按钮时,我必须使其中一些消失(不可见)。
我考虑过使用ControlCollection并添加需要使其不可见的控件。 但是,一旦我将它们带入ControlCollection,它们就会从我的网页上消失。 我不知道为什么。
C#代码:
private void createGroup()
{
ControlCollection cc = CreateControlCollection();
cc.Add(txt1);
cc.Add(txt2);
// and so on...
}
如果我在Page_Load()事件上调用此函数,则该页面上没有控件。
谢谢
您是否尝试过为单选按钮选择处理程序中的每个控件简单地设置Visible=false
?
void YourRadioButton_CheckChanged(Object sender, EventArgs e)
{
txt1.Visible = !YourRadioButton.Checked;
txt2.Visible = !YourRadioButton.Checked;
// and so on...
}
如果要在页面加载中创建控件集合以简化操作,只需创建List<WebControl>
。
List<WebControl> yourControls = new List<WebControl>();
//...
protected void Page_Load(object sender, EventArgs e)
{
yourControls.Add(txt1);
yourControls.Add(txt2);
// and so on...
}
Page对象已经具有称为控件的控件集合。 您可以执行以下操作:
void YourRadioButton_CheckChanged(Object sender, EventArgs e)
{
foreach(Control control in this.Controls)
{
if(control is Textbox)
{
// do something
}
}
}
动态控件应在PreInit
事件中创建。 阅读有关ASP.NET页面生命周期的信息 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.