我有以下代码,它应该检查DataList(Month)中的变量是否与名为mesActual的变量相同,它们是文本(如12月/ 11月)
<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”已更改,但是类李的变化没有改变
我错过了什么?
谢谢!
答案 0 :(得分:0)
尝试使用Equals方法而不是==运算符进行比较。这将比较字符串值而不是引用。
此外,您不需要将它包装在Convert.ToBoolean()中,因为Equals方法的结果将返回一个bool。
Eval(“Month”)。Equals(Convert.ToString(mesActual))? “activa”:“no-activa”
答案 1 :(得分:0)
尝试runat="server"
,<%# %>
仅触发DataBind()
:
<li id="Li1" runat="server" class='<%# Convert.ToString(Eval("Month")) == Convert.ToString(mesActual) ? "activa" : "no-activa" %>'>
答案 2 :(得分:0)
mesActual是什么类型的?以及如何以及何时设置它的值。
如果您尝试过:
<li id="Li1" runat="server" class='<%# (Eval("Month").ToString().Equals( mesActual)) ? "activa" : "no-activa" %>'
它没有用,你验证了Eval(“月”)和变量mesActual的值,实际上在某些时候是相同的吗?
干杯。