vb.net
2016-12-14 43 views -1 likes 
-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,但您必須告訴頁面手動執行。

我覺得我以前不喜歡這樣,地方在那裏它是有意義的(例如,在PreRender生命週期事件):

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

或者,因爲這是相對靜態的,請在ASPX以下(等號簽收分配,而不是爲#綁定):

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

當我這樣做,我得到「無法從它的字符串表示「創造型‘System.Boolean’的對象<%=不isnothing(會話(」 LOGIN_ID 「))%>'爲'可見'屬性。」 –

+0

添加數據綁定()工作。爲數據控件添加任何.databind()似乎可以使其工作! –

相關問題