-1

私は多くのテキストボックスを含む Web フォームを持っていstring.Emptyます。次のように foreach ステートメントでそれらすべてを簡単に使用したいのです。

foreach(Control c in this.Controls)
{
  if(c is TextBox)
  {
      //..some code
  }

}

しかし、ページにテキストボックスがありますが、if ステートメントは true を返しません。しかし、私が書いてみると: if(c is Control)、それはtrueを返しますが、Textboxはそうではありません。

何が間違っているのかわかりません..助けてくれてありがとう

4

3 に答える 3

1

thisおそらくページオブジェクトである直接の子のみをループしています。

ネストされたコントロールを含むページ上のすべてのコントロールをループするには、コントロール ツリーを再帰的にトラバースする必要があります。

public void RecursivelyClear(Control parent)
{
    for each (var theControl in parent.Controls)  {
        if (theControl is TextBox)
            // your code here ...
        if (theControl.HasControls)
            RecursivelyClear(theControl);
    }
}
于 2012-11-20T17:56:51.393 に答える
0

フォームをリセットする簡単な方法は、RESET HTML ボタンを追加することです:

    <input type="reset" value="Reset" />

このようにして、ページのポストバックとすべてのコントロールのループを回避します。コントロールをリセットするだけでページのパフォーマンスを向上させるのに役立ちます。

これがあなたの質問に答えることを願っています。はいの場合は、「回答済み」としてマークしてください。

于 2012-11-20T17:57:17.197 に答える