为什么Visible ='<%#false%>'在GridView上工作但不是标签?

时间:2009-12-18 19:59:48

标签: asp.net gridview label visible

我对此感到头疼,但不知道问题是什么。 我的实际代码是

<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。

我确信我可以通过将代码放在代码隐藏中来实现这一点,但它不会那么干净。

3 个答案:

答案 0 :(得分:5)

&lt;%#%&gt;仅适用于数据绑定项目。

您需要将其更改为&lt;%=%&gt; (注意“=”)

答案 1 :(得分:1)

&lt;%=用于直接打印到页面,&lt;%#用于数据绑定元素。 Here是对所有内联代码指令的一个很好的解释。

答案 2 :(得分:1)

感谢艾莉森指出我正确的方向。 我需要将Page.DataBind()添加到我的Page_Load事件中,以便评估表达式。