设置“可见”值以编程方式在 ASPX 页面中属性

发布于 2024-12-12 07:00:14 字数 466 浏览 0 评论 0 原文

我试图根据条件将标签的可见属性设置为 true 或 false。这是在 ASPX 页面中。我做错了什么并在执行时出错。

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

我收到的错误如下。

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

需要进行哪些更改?

当“IsAuthorized”大于零时,我需要做的就是将 LABEL 的可见属性设置为 true。

I am trying to set the visible property for a label to either true or false depending on a condition. This is in ASPX page. I am doing something wrong and getting error when this is executed.

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

Error I am getting is below.

Compiler Error Message: CS0019: Operator '>' cannot be applied to
operands of type 'object' and 'int'

What changes need to be done?

All I need to do set the visible property of the LABEL to true when 'IsAuthorized' is greater than zero.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

倚栏听风 2024-12-19 07:00:14

那是因为你有语法错误,你这个傻兔子。

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

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

你在某处有一个额外的 > 和一个 0
另外,由于您在 之间没有执行任何操作,因此您可以用结束斜杠将其关闭并跳过单独的结束标记。像这样

另外,有时尝试设置这样的可见属性会导致问题,程序可能会抱怨该值不是布尔值。您可能还想广告一个显式转换,如下所示:

 Visible='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "IsAuthorized")) %>' 

That's because you have a syntax error, you silly bunny.

Here you are, it should be like this:

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

You had an extra > and a 0 in there somewhere.
Also, since you aren't doing anything between the <asp:Label and </asp:Label>, you can close it with an end slash and skip a separate ending tag. Like this <asp:Label ... />

ALSO, sometimes trying to set a visible property like that causes problems, the program can complain that the value wasn't a Boolean. You might want to also ad an explicit conversion like this:

 Visible='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem, "IsAuthorized")) %>' 
不回头走下去 2024-12-19 07:00:14

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

 Visible='<%#Convert.ToBoolean(Eval("IsAuthorized"))%>'  

Assuming that IsAuthorized is a bit type, just cast it to a boolean:

 Visible='<%#Convert.ToBoolean(Eval("IsAuthorized"))%>'  
<逆流佳人身旁 2024-12-19 07:00:14

注意,在服务器端控件上,您可以这样做:

<someControl id="myId" runat="server" Visible='<%# this.SomeField > 5 %>'>

但是除非您在后面的代码中调用 DataBind,否则它将不起作用,例如在 Page_Load 中:

myId.DataBind():

Note on a server side control you can do this:

<someControl id="myId" runat="server" Visible='<%# this.SomeField > 5 %>'>

But it won't work unless you call DataBind in the code behind, such as in Page_Load:

myId.DataBind():
哆啦不做梦 2024-12-19 07:00:14

假设 IsAuthorized 是一个整数,您应该使用这个:

Visible='<%# ((int)DataBinder.Eval(Container.DataItem, "IsAuthorized")) > 0 %>'

Eval 返回一个 object,因此您必须首先将其转换为 integer

Assuming IsAuthorized is an integer, you should use this:

Visible='<%# ((int)DataBinder.Eval(Container.DataItem, "IsAuthorized")) > 0 %>'

Eval returns an object, so you have to cast it to an integer first.

谈场末日恋爱 2024-12-19 07:00:14
<td><asp:Label ID="Label23" runat="server" Text='CERTIFIED' Visible='<%# (int)(DataBinder.Eval(Container.DataItem, "IsAuthorized")) > 0 %>' ></asp:Label></td>
<td><asp:Label ID="Label23" runat="server" Text='CERTIFIED' Visible='<%# (int)(DataBinder.Eval(Container.DataItem, "IsAuthorized")) > 0 %>' ></asp:Label></td>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文