如何从后面的母版页代码中设置所有TextBox readonly?
我尝试了以下代码,但它不起作用:
protected void Page_Load(object sender, EventArgs e)
{
foreach (Control c in this.Controls)
{
if (c is TextBox)
((TextBox)c).ReadOnly = true;
}
}
感谢的
答案 0 :(得分:2)
Ebyrob和我有同样的想法,添加了一个空参考保护并检查控件是否有子节点(减少调用)。
protected void Page_Load(object sender, EventArgs e)
{
SetReadonly(this);
}
private void SetReadonly(Control c)
{
if (c == null)
{
return;
}
foreach (Control item in c.Controls)
{
if (item.HasChildren)
{
SetReadonly(c);
}
else if (c is TextBox)
{
((TextBox)c).ReadOnly = true;
}
}
}
答案 1 :(得分:1)
尝试:
protected void Page_Load(object sender, EventArgs e)
{
foreach (TextBox textbox in this.Controls.OfType<TextBox>())
{
textbox.ReadOnly = true;
}
}
答案 2 :(得分:0)
试试这个。我测试这个并且工作正常
private void SetReadonly(Control c)
{
if (c == null)
{
return;
}
foreach (Control item in c.Controls)
{
if (item is TextBox)
{
((TextBox)item).ReadOnly = true;
}
else if (item.HasControls())
{
SetReadonly(item);
}
}
}