【问题标题】:CheckBox event loop in asp.netasp.net 中的 CheckBox 事件循环
【发布时间】:2013-10-15 12:40:07
【问题描述】:

我的codebehind .cs 文件(.NET.Framework 4.0)上有这个方法:

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (CheckBox1.Checked == true)
        {

            this.nombre.Enabled = false;

        } 
    }

因此,每次单击复选框时,我都可以在我的 aspx 中禁用 nombre TextBox。

这是aspx文件中的代码:

        <asp:CheckBox ID="CheckBox1" Checked="false" runat="server" OnCheckedChanged="CheckBox1_CheckedChanged" AutoPostBack="true"/>     

现在,我想知道一种简化此例程的方法,我的意思是,我有很多文本框、单选按钮等...

那么如何在 asp.net 中使用 loop 来实现这一点?

提前致谢!

【问题讨论】:

  • 你为什么不使用 javascript 或 jquery 呢?如果你愿意使用jquery,那么它会很简单吗?
  • 启用/禁用带有多个复选框的文本框的逻辑是什么?
  • Nono,我只需要一个复选框,我在帖子中向您展示的那个,然后禁用所有文本框、单选按钮等,只需一个复选框。
  • @nrsharma 你知道我在哪里可以找到关于 javascript 的这种情况的例子吗?
  • @KristianKoci 这不是寻找示例的问题,而是采用不同方法的逻辑问题。如果您了解 javascript 或 jquery,那么您可以使用非常简单的代码在其中实现逻辑。

标签: c# asp.net .net loops


【解决方案1】:

请尝试关注。

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
    {
        if (CheckBox1.Checked == true)
        {    
           DisableControlsInPage(this.Page,false);    
        } 
    }

    protected void DisableControlsInPage(Control parent, bool isEnable) {
        foreach(Control c in parent.Controls) {
            if (c is TextBox) {
                ((TextBox)(c)).Enabled = isEnable;
            }
            if (c is RadioButton) {
                ((RadioButton)(c)).Enabled = isEnable;
            }    
            DisableControlsInPage(c, isEnable);
        }
    }

【讨论】:

  • 爆头!大声笑非常感谢@mit 现在可以完美运行了!
  • 顺便说一句,如果取消选中复选框,它们仍然被禁用?
  • 在 CheckBox1_CheckedChanged 事件中使用 DisableControlsInPage(this.Page,true); 写入 else 条件;
【解决方案2】:

您可以尝试获取控件,然后检查它是否是文本框

foreach(Control cont in this.Controls)
{
   if(cont.GetType() == typeof(Textbox))
   {
      (cont as Textbox).Enabled = false;
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    相关资源
    最近更新 更多