check 是我在CS页声明的全局INT型变量,GetCheck方法是CS页的,用来修改check 这个变量值用的,调用这个方法是将check 的值修改为 1
但是为什么走到IF这块 它就直接走else去了呢? 正常应该是 check == 1 应该是正确的呀,但是它还是走到else去了,貌似压根没判断if似的。。请问为什么呢?
还有如果我不通过调用GetCheck这个方法修改check的值,默认给check赋1的话,那就不会出问题。
<%# GetCheck() %>
    <% if (check == 1) { %>
    aaaaa
    <% } else{ %>
    bbbb
    <%} %>

解决方案 »

  1.   

    怀疑是在回发的过程中,导致check变量重新初始化了
    将全局变量换成属性,使用ViewState进行存储。public int check
    {
       get
       {
          if(ViewState["check"]!=null)
              return int.Parse(ViewState["check"].ToString());
          return 0;
       }
       set{ViewState["check"]=value;}      
    }
      

  2.   

    2楼的兄弟,还是不行呀,我跟踪了一下,发现他执行完GetCheck 方法后,就直接跳到ELSE 去了。晕啦。
      

  3.   

    我们都不怀疑IDE有啥问题,特别是在判断的时候,既然它直接跳到else 肯定不满足if 
    明修栈道,暗度陈仓   好好查一查,check值还是你全局变量时候的那个样子,
      

  4.   

    你在那个判断中打印下check的值,看看check是不是1
    在看什么地方的问题
      

  5.   

    对了 ,忘记告诉大家了,我这段代码是写在 
    <asp:Repeater ID="Repeater1" runat="server">
        <ItemTemplate>这里的</ItemTemplate>
        </asp:Repeater>
      

  6.   

    <ItemTemplate>你在绑定事件里做,这里的代码会执行多次的