检查变量以在c#运行时设置类值
本文关键字:设置 运行时 变量 检查 | 更新日期: 2023-09-27 18:17:41
我有下面的代码,它应该检查一个变量从一个数据列表(月)它是相同的变量称为mesActual,他们是文本(像十二月/十一月)
<li id="Li1" class='<%# (Convert.ToBoolean(Convert.ToString(Eval("Month")) == Convert.ToString(mesActual))) ? "activa" : "no-activa" %>'>
<asp:LinkButton ID="lnkbtn" runat="server" CommandName="Select" CommandArgument='<%#Eval("Month")%>'><%#Eval("Month")%></asp:LinkButton>
<div class="btn"><span><asp:Label ID="lbltot" runat="server"></asp:Label></span></div>
</li>
在页面加载时,它似乎起作用了,第一个项目被选中并分配了类"activa",但是当我点击按钮时,它重新加载了页面,我可以看到我的变量"mesActual"改变了,但是li的类没有改变。
我错过了什么?
谢谢!
尝试使用Equals方法而不是==操作符进行比较。这将比较字符串值与引用。
也不需要在Convert.ToBoolean()中包装它,因为Equals方法的结果将返回bool值。
Eval("月").Equals (Convert.ToString (mesActual)) ?"activa": "no-activa"
尝试runat="server"
, <%# %>
只对DataBind()
开火:
<li id="Li1" runat="server" class='<%# Convert.ToString(Eval("Month")) == Convert.ToString(mesActual) ? "activa" : "no-activa" %>'>
mesActual是什么类型?以及如何以及何时设置它的值。
如果你试过:
<li id="Li1" runat="server" class='<%# (Eval("Month").ToString().Equals( mesActual)) ? "activa" : "no-activa" %>'
并且它不起作用,您是否验证了Eval("Month")和变量mesActual的值,实际上在某些时候是相同的?
欢呼。