8

特定の条件が確認されたときに、ページからコントロール (テキスト ボックス) を削除する必要があります。コードビハインドから行うことは可能ですか、それとも JavaScript を使用する必要がありますか。

コントロールを非表示にするのではなく、削除する必要があります...

4

5 に答える 5

12

親でControls.Removeまたはを使用します。Controls.RemoveAtControlCollection

たとえば、ページの上部からすべてのTextBoxを削除する場合は、次のようにします。

var allTextBoxes = Page.Controls.OfType<TextBox>().ToList();
foreach(TextBox txt in allTextBoxes)
    Page.Controls.Remove(txt);

using System.Linq(に追加する必要があることに注意してくださいEnumerable.OfType

または、指定されたIDのTextBoxを削除する場合:

TextBox textBox1 = (TextBox)Page.FindControl("TextBox1"); // note that this doesn't work when you use MasterPages
if(textBox1 != null)
    Page.Controls.Remove(textBox1);

非表示にしたい(そしてクライアントサイドから完全に削除したい)場合は、非表示にすることもできます。

textBox1.Visible = false;
于 2012-10-09T14:49:04.267 に答える
3

コントロール コレクションから削除することもできますが、代わりに非表示にしてみませんか?

yourTextBox.Visible = false;

これにより、ブラウザに送信される生成された html に含まれなくなります。

于 2012-10-09T14:46:54.007 に答える
1

を設定.Visible=falseすると、ページにレンダリングされません。DataBindControls コレクションからコントロールを削除する場合は、 、InitLoadPreRenderまたはUnloadフェーズ中に実行しないでください。例外がスローされるためです。

コントロールを動的に追加または削除すると、問題が発生する場合があります。

于 2012-10-09T14:46:54.523 に答える
0

このコードで試すことができます-に基づいてRemove method

this.Controls.Remove(YourControl);

リンク: http://msdn.microsoft.com/en-US/library/system.web.ui.controlcollection.remove(v=vs.80).aspx

于 2012-10-09T14:47:32.480 に答える
0

はい、ページのコントロール コレクションから削除できます。

this.Controls.Remove(control);
于 2012-10-09T14:45:46.397 に答える