2016-12-14 16 views
-1

なぜこのラベルがレンダリングされたHTMLに表示されますか?vb.netラベルにセッション変数が表示されません

<asp:Label ID="Label1" runat="server" Visible='<%# false %>' Text='HERE' /> 

私は背後にあるコードではfalseに表示を設定することができますし、それが離れて行くでしょうが、私が本当にしたいことは、このように、変数のセッションに応じて、既存の可視性を設定することです:

<asp:Label ID="Label2" runat="server" Visible='<%# isnothing(Session("Login_ID")) %>' Text='THERE' /> 

私は前にこれをしなかったことを誓うことができましたが、今日はそれが働いていません。

答えて

0

あなたはPageにバインドするように指示していないためだと思います。他のコントロールはDataGridのように自動的にバインドできますが、手動で行うようにページに指示する必要があります。

' Me is the Page; call this from the page to bind its controls that use the <%# %> syntax 
Me.DataBind() 

それとも、これは比較的静的であるため、ASPXで次のように使用します(等号:

は、私はそれが意味(例えば、PreRenderイベントのライフサイクルイベントを)作っところ私はどこかに、このようにそれを行うために使用されると思いますむしろ)結合のための#よりも、割り当てのために署名:私は私が得ることを行うと、「その文字列表現「からタイプの 『可能System.Boolean』オブジェクトを作成できません<%=がisnothingない(セッション(」

<asp:Label ID="Label2" runat="server" Visible='<%= isnothing(Session("Login_ID")) %>' Text='THERE' /> 
+0

LOGIN_ID "))%> '' Visible 'プロパティに使用します。" –

+0

databind()を追加しました。任意の.databind()をデータコントロールに追加すると、それが機能するようです! –

関連する問題