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

时间:2011-12-14 02:32:48

标签: c# asp.net .net

我有以下代码,它应该检查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”已更改,但是类李的变化没有改变 我错过了什么?
谢谢!

3 个答案:

答案 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的值,实际上在某些时候是相同的吗?

干杯。