2009-12-18 40 views
2

我正在摸索這個問題,但不知道問題是什麼。 我實際的代碼是爲什麼Visible ='<%#false%>'在GridView上工作但沒有標籤?

<asp:Label ID="Label1" runat="server" Text="abc" 
      Visible='<%#Request.QueryString["ListName"] == null %>' /> 
<asp:GridView ID="gvLists" runat="server" 
       Visible='<%#Request.QueryString["ListName"] == null %>' /> 

正如你所看到的,我想只會使對象的可見性通過查詢字符串來驅動。它適用於GridView,但不適用於標籤。我也嘗試了Panel和HyperLink,獲得了相同的結果。

我相信我可以通過將代碼放在代碼隱藏中來實現這個工作,但它不會那麼幹淨。

+0

我有一種感覺,'<%# %>'只會在數據綁定上評估。 – 2009-12-18 20:02:22

回答

1

感謝艾莉森指引我在正確的方向。 我需要將Page.DataBind()添加到我的Page_Load事件中才能評估表達式。

5

<%#%>僅適用於數據綁定項目。

需要將其變更爲<%=%>(注意「=」)

+0

雖然這沒有奏效,但您確實指出了我朝着正確的方向 – PBG 2009-12-18 20:13:49

+1

這不起作用,因爲Visible是服務器端屬性,而'<%= %>'只添加html以呈現給客戶端。 – 2009-12-18 20:21:07

1

<%=是使用直接打印到頁面和<%#被用於數據綁定元素。 Here是所有內聯代碼指令的很好解釋。

相關問題