代码如下
  protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{   
    foreach (GridViewRow row in votetable2.Rows)
        {
            CheckBox check=(CheckBox)(row.FindControl("votecheck1"));
            if (check.Checked=true)
            {
               Response.Write("1");
            }
        }就是遍历GridView的过程中,并不会根据是否CHECKED显示1的数量。认为全部的CHECKBOX都已经被选择。有几个选项就出来几个1.而且BUTTON按完刷新了以后,GRIDVIEW中的CHECKBOX这一栏也都全部变为已选择的状态了。敢问各位这个是什么问题呢?是不是我有什么地方没有注意到?

解决方案 »

  1.   

    少了一个等号
    if (check.Checked==true) 
      

  2.   

     " if (check.Checked=true) "应该是“  if (check.Checked==true) ”是判断不是赋值
      

  3.   

    就是=true的状态下。如果不写=true就是无效
      

  4.   

    现在的问题是,不管CHECK选择一个,还是选三个。最后的结果都是把所有的项目个数都判定为已经选择。
      

  5.   


    单步执行的话……
    CheckBox check=(CheckBox)(row.FindControl("votecheck1")); 
    里 CHECK里获得的值是NULL。这个有问题吗?
      

  6.   

    =true是把check.Checked=true 赋值为true,if永远为true
    if (n=true)
    和这个一样n=true
    if trueif n==true是判断如果n是true还是false
      

  7.   

      Response.Write("1"); 应该这样吧 Rsponse.write("<script>alert('1')</script>");
      

  8.   

    那就说明还有别的错,你try catch一下试试
      

  9.   

    CheckBox check=(CheckBox)(row.FindControl("votecheck1")); 
    中的votecheck1是否正确??
    你这里的CheckBox是不是服务器控件?
      

  10.   

    page_load里可有ispostback,单步调试看看数据
      

  11.   

    楼上说的对,是我ISPOSTBACK忘记设置了,所以导致每次页面刷新GRAIDVIEW都重新绑定了。所以判定都无法通过。