【发布时间】:2014-06-25 18:36:01
【问题描述】:
我有一个 Web 表单,我试图在 textchanged 事件中将文本框控件属性设置为 false。我有多个文本框,我已将它们放入面板中。现在我正在检查文本框的文本更改事件中的条件。如果条件匹配,则不会发生任何变化,但如果不匹配,我会将文本框的面板控件内的启用属性设置为 false。 这就是我正在做的-
<asp:TextBox ID="TextBox1" runat="server" Width="150px" AutoPostBack="True"
ontextchanged="TextBox1_TextChanged"></asp:TextBox>
<asp:Panel ID="Panel1" runat="server">
<asp:TextBox ID="txt1" runat="server"></asp:TextBox>
<asp:TextBox ID="txt2" runat="server"></asp:TextBox>
<asp:TextBox ID="txt3" runat="server"></asp:TextBox>
</asp:Panel>
我的cs代码-
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
SqlConnection cons1 = new SqlConnection(ConfigurationManager.ConnectionStrings["constr"].ConnectionString);
cons1.Open();
SqlCommand scmd1 = new SqlCommand("select name from tbl_names where name='"+TextBox1.Text+"'", cons1);
SqlDataReader sdr1 = scmd1.ExecuteReader();
if (sdr1.HasRows)
{
while (sdr1.Read())
{
Panel1.Visible = true;
Control ctrl = new Control();
foreach (Control c in ctrl.Controls)
{
if (c is TextBox && c.ID.StartsWith("txt"))
((TextBox)c).ReadOnly = false;
}
}
}
else
{
Panel1.Visible = true;
Control ctrl1 = new Control();
foreach (Control c in ctrl1.Controls)
{
if (c is TextBox && c.ID.StartsWith("txt"))
((TextBox)c).ReadOnly = true;
}
}
cons1.Close();
}
请指导我为什么这不起作用?
【问题讨论】:
-
你为什么要创建一个新的空控件,然后尝试循环它的控件(这将是空的)?你调试过这个吗?
标签: c# asp.net textbox textchanged