0

codebehind.cs ファイル (.NET.Framework 4.0)にこのメソッドがあります。

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

            this.nombre.Enabled = false;

        } 
    }

したがって、これnombreにより、チェックボックスをクリックするたびに、aspx でその TextBox を無効にすることができます。

aspx ファイルのコードは次のとおりです。

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

さて、このルーチンを簡素化する方法を知りたいのですが、つまり、テキストボックス、ラジオボタンなどがたくさんあります...

loopでは、asp.netでaを使用してこれを達成するにはどうすればよいですか?

前もって感謝します!

4

2 に答える 2

1

コントロールを取得してから、それがテキストボックスかどうかを確認できます

foreach(Control cont in this.Controls)
{
   if(cont.GetType() == typeof(Textbox))
   {
      (cont as Textbox).Enabled = false;
   }
}
于 2013-10-15T04:34:50.187 に答える
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);
        }
    }
于 2013-10-15T04:40:07.417 に答える