检查变量以在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的类没有改变。
我错过了什么?
谢谢!

检查变量以在c#运行时设置类值

尝试使用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的值,实际上在某些时候是相同的?

欢呼。