1

ラベルとそのコントロールを表示および非表示にします。コードビハインドのc#でこれを行うことができます。ただし、コントロールの表示/非表示しかできません。何か案は?

<asp:label AssociatedControlID="thisLabel" runat="server">This:
     <asp:label ID="thisLabel" CssClass="ascontrol" runat="server" />
</asp:label>

どのユーザーがページにアクセスするかに応じて、そのすべてを表示および非表示にできるようにしたいと思います。背後にあるc#コードでそのすべてを表示/非表示にする方法を知る必要があります...ラッパーラベルの可視性をなくすことができないようです。

4

3 に答える 3

1

サーバー側IDを指定していません:

<asp:Label ID="label_MyControl" AssociatedControlID="txt_MyControl" runat="server" />
<asp:TextBox ID="txt_MyControl" runat="server" />

これまでに行ったことは、asp:Labelコントロールを別のasp:Labelコントロール内にネストすることです。

于 2010-06-30T15:06:42.313 に答える
1

私は通常、複数のフィールドを連続して非表示にするため、全体をasp:Panelでラップして、パネルを非表示にする傾向があります。しかし、それは私の特定の使用法です。しかし、それは私の使用法なので、あなたの例のような単純なものであっても、私はそれらの種類のものをパネルにブロックする傾向があります。

ちょうど私のニッケルの価値、あなたのマイレージはいつものように変わるかもしれません。

于 2010-06-30T15:12:45.920 に答える
0

次のように、マークアップを正しく取得すれば機能するはずです。

<asp:Label ID="lblYear" runat="server" Text="Year (yyyy):" 
    AssociatedControlID="txtYear"></asp:Label>
<asp:TextBox ID="txtYear" runat="server" Columns="30" MaxLength="4"></asp:TextBox>

次に、背後にあるコードで次のようにすることができます。

lblYear.visible = False
txtYear.Visible = False

さて、asp:labelの「AssociatedControlID」プロパティについての私の理解は、主にアクセシビリティの目的のためです。私が示したように物事を機能させるためにAssociatedControlID値を設定する必要はありません。

于 2010-06-30T15:19:46.220 に答える