如何把所有的TextBox的Enabled状态改为False? 我页面上有几个TextBox,要做一个判断,当不符合条件时,全部TextBox的Enabled属性改为False 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 循环遍历整个页面。将类型为TextBox的筛选出来,然后赋值,如果不会遍历去,找点。net的面试题看看,那上面一定有我记得看过、 依着我,写到一个方法里,这个方法里依次设置每一个TextBox。没有必要取巧。 public void Clear(Control page)foreach(Control ctrl in page.Controls){ if(ctrl is TextBox) (ctrl as TextBox).Text=""; if(ctrl.HasControls()) Clear(ctrl);} protected void btn_Clear_Click(object sender,EventArgs e){ Clear(this);} foreach (Control c in this.form1.Controls) { if (c is TextBox) { ((TextBox)c).Enabled == false; } } foreach(Control ctrl in this.Controls){ if(ctrl is TextBox) ctrl.enabled = false;} 参考:http://school.itzcn.com/special-spid-19.html上面讲解的比较详细,希望对楼主有所帮助。 三楼的方法千万别用,用了之后,板块上所有的textbox 控件都没了,不是不能使用了,是都没了。可以结合三楼和四楼的方法:public void ContrlEnable(Control page){ foreach(Control ctrl in page.Controls) { if(ctrl.HasControls()) { if(ctrl is TextBox) (ctrl as TextBox).Enable=FALSE; } } } 建议:如果设置TextBox的Enabled为false后,在后台用Text只能取得服务器端发送的值,比如 <asp:textbox id="t1" runat="server" Text="abc" Enabled="false" /> 上面这个t1,你在后台通过t1.Text,永远是取到abc,不管你在前台怎么修改都是这样 解决方法: 1、不用Enabled="false",改用:TextBox1.Attributes.Add("ReadOnly", "ReadOnly"); 可以在服务端判断逻辑。不满足条件禁用输入框时无刷新。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title></title> <script type="text/javascript"> function disabledAllTextBox() { var items = document.getElementsByTagName("input"); for (var i = 0; i < items.length; i++) { if (items[i].type == "text") { items[i].disabled = true; } } } </script></head><body> <form id="form1" runat="server"> <asp:ScriptManager ID="sm" runat="server" /> <div> <asp:TextBox ID="tb1" runat="server" /> <asp:TextBox ID="TextBox1" Text="t" runat="server" /> <asp:TextBox ID="TextBox2" Text="3" runat="server" TextMode="MultiLine" /> <asp:TextBox ID="TextBox3" runat="server" TextMode="Password" /> <asp:UpdatePanel ID="up" runat="server"> <ContentTemplate> <asp:Button ID="btn" runat="server" onclick="btn_Click" /> </ContentTemplate> </asp:UpdatePanel> </div> </form></body></html>protected void btn_Click(object sender, EventArgs e) { if (1 == 1) { ScriptManager.RegisterClientScriptBlock(this,this.GetType(), "disabledAllTextBox", "disabledAllTextBox()", true); } } 这种解决办法有时候不合适(客户端是不值得信任的,这种disabled的方法客户端是可以用脚本进行私自修改TextBox为孔用的,不安全。 存储多个List<string> 用什么 datagrid单元格里的内容随着表格大小而改变 DataGrid中EditCommand事件的问题~~~ 高手帮忙!视图设计器打不开? 在.net中引入javascript的函数 取得自定义控件的属性 请问:treeview控件的问题 在ASP.NET里怎么让用户设置自定义的水印文字颜色? viewstate问题? 问一个菜菜菜的问题,win2000pro可以安装.net吗? 求SQL分页语句!! 【可以发给伪静态的例子给我吗?】(谢谢)
public void Clear(Control page)
foreach(Control ctrl in page.Controls)
{
if(ctrl is TextBox)
(ctrl as TextBox).Text="";
if(ctrl.HasControls())
Clear(ctrl);
}
protected void btn_Clear_Click(object sender,EventArgs e)
{
Clear(this);
}
foreach (Control c in this.form1.Controls)
{
if (c is TextBox)
{
((TextBox)c).Enabled == false;
}
}
foreach(Control ctrl in this.Controls)
{
if(ctrl is TextBox)
ctrl.enabled = false;
}
http://school.itzcn.com/special-spid-19.html
上面讲解的比较详细,希望对楼主有所帮助。
可以结合三楼和四楼的方法:
public void ContrlEnable(Control page)
{
foreach(Control ctrl in page.Controls)
{
if(ctrl.HasControls())
{
if(ctrl is TextBox)
(ctrl as TextBox).Enable=FALSE;
}
}
}
如果设置TextBox的Enabled为false后,在后台用Text只能取得服务器端发送的值,比如
<asp:textbox id="t1" runat="server" Text="abc" Enabled="false" />
上面这个t1,你在后台通过t1.Text,永远是取到abc,不管你在前台怎么修改都是这样 解决方法:
1、不用Enabled="false",改用:
TextBox1.Attributes.Add("ReadOnly", "ReadOnly");
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<script type="text/javascript"> function disabledAllTextBox()
{
var items = document.getElementsByTagName("input");
for (var i = 0; i < items.length; i++)
{
if (items[i].type == "text")
{
items[i].disabled = true;
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="sm" runat="server" />
<div>
<asp:TextBox ID="tb1" runat="server" />
<asp:TextBox ID="TextBox1" Text="t" runat="server" />
<asp:TextBox ID="TextBox2" Text="3" runat="server" TextMode="MultiLine" />
<asp:TextBox ID="TextBox3" runat="server" TextMode="Password" />
<asp:UpdatePanel ID="up" runat="server">
<ContentTemplate>
<asp:Button ID="btn" runat="server" onclick="btn_Click" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
</body>
</html>
protected void btn_Click(object sender, EventArgs e)
{
if (1 == 1)
{
ScriptManager.RegisterClientScriptBlock(this,this.GetType(), "disabledAllTextBox", "disabledAllTextBox()", true);
}
}
这种解决办法有时候不合适(客户端是不值得信任的,这种disabled的方法客户端是可以用脚本进行
私自修改TextBox为孔用的,不安全。