以编程方式在ASPX页面中设置'visible'属性的值

Ani*_*udh 4 asp.net visible aspxgridview

我试图根据条件将标签的visible属性设置为true或false.这是在ASPX页面中.我做错了什么,并在执行时遇到错误.

<td><asp:Label ID="Label23" runat="server" Text='CERTIFIED'
   Visible='<%# DataBinder.Eval(Container.DataItem, "IsAuthorized") > 0%>'>
</asp:Label></td>
Run Code Online (Sandbox Code Playgroud)

我得到的错误是在下面.

编译器错误消息:CS0019:运算符'>'不能应用于'object'和'int'类型的操作数

需要做哪些改变?

当'IsAuthorized'大于零时,我需要做的就是将LABEL的visible属性设置为true.

rlb*_*usa 11

那是因为你有一个语法错误,你傻兔子.

你在这里,应该是这样的:

 <td><asp:Label ID="Label23" runat="server" Text='CERTIFIED' Visible='<%# DataBinder.Eval(Container.DataItem, "IsAuthorized") %>'  /></td>
Run Code Online (Sandbox Code Playgroud)

你有一个额外的>,0在那里的某个地方.此外,由于您没有在<asp:Label和之间执行任何操作,因此</asp:Label>可以使用结束斜杠关闭它并跳过单独的结束标记.像这样<asp:Label ... />

此外,有时尝试设置这样的可见属性会导致问题,程序可能会抱怨该值不是布尔值.您可能还希望像这样进行显式转换:

 Visible='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "IsAuthorized")) %>' 
Run Code Online (Sandbox Code Playgroud)

  • 这是一个很好的答案!从愚蠢的兔子,到纠正的代码行,到纠正的解释,然后在结尾"你可能也想".这是答案的完美公式 - 1)答案,2)解释,3)改进. (2认同)

Jam*_*son 5

假设IsAuthorized是位类型,只需将其转换为布尔值即可:

 Visible='<%#Convert.ToBoolean(Eval("IsAuthorized"))%>'  
Run Code Online (Sandbox Code Playgroud)