ASP.NET Panel
などのコンテナコントロールに入れ
<asp:Panel id="Panel1" runat="server" CssClass="ButtonPanel">
<asp:TextBox id="Txt1" runat="server" />
<asp:Button id="Btn1" Text="click me" OnClick="Button_Click" runat="server"/><br />
<asp:TextBox id="Txt2" runat="server" />
<asp:Button id="Btn2" Text="click me" OnClick="Button_Click" runat="server"/><br />
<asp:TextBox id="Txt3" runat="server" />
<asp:Button id="Btn3" Text="click me" OnClick="Button_Click" runat="server"/>
</asp:Panel>
次にあなたが見つけることができます:それは、彼らは同様の意味を持つときDIVとしてレンダリングされますそして、このようにループして:彼らは(GridView
のような)子コントロールにネストされているとき
Dim allPanelButtons = Panel1.Controls.OfType(Of Button)()
For Each btn In allPanelButtons
btn.Visible = False
Next
OfType
もページ全体では動作しますが、ではないでしょう。
あなたの質問はもちろん、あなたがそれらが宣言を追加している直接自分の名前(実際にはID)によってコントロールを参照することができ、少しは不明であるControlCollection
ページの:
Btn1.Visible = False
そしてはい、それも動作します彼らはidで検索しますが、このアプローチはお勧めしません。はフェールセーフではなく、今後の問題が発生する可能性があります。だから完全性のために:
For i = 1 To 6
Dim control = FindControl("Btn" & i)
If control IsNot Nothing AndAlso TypeOf control Is Button Then
control.Visible = False
End If
Next
が読める、よくフォーマットされた方法で質問をしてにいくつかのより多くの努力を入れてください - –
が誤ってキャップをつけましたhttp://tinyurl.com/so-hints見ます途中でロックするか?あなたは本当に投稿する前に校正するべきです。 –
ああ、vb.netのパワーは、大文字と小文字は区別されません。ドライブC#プログラマーのナット。 "items"をMe.Controlsに置き換えます。または、私.controls :) –