c# - 如何使多个文本框只读

标签 c# asp.net

我在通过 stackoverflow 搜索时得到了这个脚本

string commonTextBoxPrefix = "txt";
            foreach (Control c in this.Controls)
            {
                if (c.GetType() == typeof(TextBox) && 
                    c.ID.StartsWith(commonTextBoxPrefix))
                {
                    ((TextBox)c).ReadOnly = true;
                }
            }

但是当我遍历控件时它没有检测到任何其他控件,它只检测到 {System.Web.UI.LiteralControl} 所以循环没有进入

if (c.GetType() == typeof(TextBox)

为什么代码没有检测到文本框和其他控件。 我也尝试了下面的代码

foreach (Control c in parent.Controls)
        {
            if (c.Controls.Count > 0)
            {
                ClearControls(c);
            }
            else
            {
                switch (c.GetType().ToString())
                {
                    case "System.Web.UI.WebControls.TextBox":
                        ((TextBox)c).Text = "";
                        break;
                    case "System.Web.UI.WebControls.CheckBox":
                        ((CheckBox)c).Checked = false;
                        break;
                    case "System.Web.UI.WebControls.RadioButton":
                        ((RadioButton)c).Checked = false;
                        break;
                    case "System.Web.UI.WebControls.DropDownList":
                        ((DropDownList)c).SelectedIndex = -1;
                        break;
                }
            }
        }

但是循环不允许进入条件。为什么循环不检测文本框?如何将多个文本框设置为只读?

最佳答案

对我有用

<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>

 protected void Page_Load(object sender, EventArgs e)
{
    ClearTextBoxes(Panel1);
}
protected void ClearTextBoxes(Control control)
{
    foreach (Control c in control.Controls)
    {
        if (c is TextBox && c.ID.StartsWith("txt"))
            ((TextBox)c).ReadOnly = true;
    }
}

enter image description here

关于c# - 如何使多个文本框只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9749079/

相关文章:

c# - 使用选项和功能设置 selenium Webdriver

ASP.NET, VB : checking which items of a CheckBoxList are selected

asp.net - 如何从 Crystal 报表中的组字段中删除组名

javascript - DropDownList 回发问题

c# - 通过 POST 发送字符串 - 不支持的媒体类型或空参数

C#:如何将 long 转换为 ulong

c# - 这个 C# 字符串格式是什么意思?

c# - 多个带有代理的 HttpClients,试图达到最大下载速度

c# - 电子邮件正文中未解释 Html IFrame 标记

jQuery ASP.NET 通过 CheckBox 标签的 innerHTML 在 CheckBoxList 中查找特定的 CheckBox