特定の条件が確認されたときに、ページからコントロール (テキスト ボックス) を削除する必要があります。コードビハインドから行うことは可能ですか、それとも JavaScript を使用する必要がありますか。
注コントロールを非表示にするのではなく、削除する必要があります...
親でControls.Remove
またはを使用します。Controls.RemoveAt
ControlCollection
たとえば、ページの上部からすべての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;
コントロール コレクションから削除することもできますが、代わりに非表示にしてみませんか?
yourTextBox.Visible = false;
これにより、ブラウザに送信される生成された html に含まれなくなります。
を設定.Visible=false
すると、ページにレンダリングされません。DataBind
Controls コレクションからコントロールを削除する場合は、 、Init
、Load
、PreRender
またはUnload
フェーズ中に実行しないでください。例外がスローされるためです。
コントロールを動的に追加または削除すると、問題が発生する場合があります。
このコードで試すことができます-に基づいてRemove method
this.Controls.Remove(YourControl);
リンク: http://msdn.microsoft.com/en-US/library/system.web.ui.controlcollection.remove(v=vs.80).aspx
はい、ページのコントロール コレクションから削除できます。
this.Controls.Remove(control);