我在GridView中放置了一个CheckBox,还有2个按钮,一个按钮是全选删除记录的,一个是重置用户的密码的,重置密码只能更改一个用户的密码,所以,要怎么做才能当选择两个或以上的用户的提示只能选择一个用户.我现在下面代码会更改所有选中用户密码的.
      for (int i = 0; i < this.GridView1.Rows.Count; i++)
        {
            bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
            if (isChecked)
            {
              string UserID = ((Label)GridView1.Rows[i].FindControl("Label1")).Text;
             .....
             .....
------------------------------------
怎样加入判断语句啊?

解决方案 »

  1.   

    哦,就是可以选中多个。当按删除记录的时候,就可以做。
    当按重置密码时,就不可以按,给出错误提示。
    就拿你的代码来说,你可以先统计现在有多少个选中啊。如果多于1个,则弹出错误提示。否则才做重置不就行了。int numOfChecked = 0;
    int indexOfChecked = -1;
    for (int i = 0; i  < this.GridView1.Rows.Count; i++)
            {
                bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
                if (isChecked)
                {  
                      numOfChecked ++; indexOfChecked = i;
    ……if( numOfChecked == 1 ){
       //处理选中的列,选中的列为:
        GridView1.Rows[indexOfChecked];
    }else{
      // 弹出错误信息
    }
      

  2.   

               int count=0;//计算选中的个数
                 for (int i = 0; i  < this.GridView1.Rows.Count; i++) 
                 { 
                bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked; 
                if (isChecked) 
                 { 
                    count++;
                  }
                 }
                 if(count>1)
                  {
                   //处理
                  }
                  
      

  3.   

    上面代码虽然不是很详细,但思路是正确的.
    又花了半个钟头,终于解决了,刚才运行时 在if (numOfChecked == 1)下面没有再加
                   for (int i = 0; i < this.GridView1.Rows.Count; i++) ....
    导致有时就重置不了密码,有时就重置了全部密码,现在共享一下代码:
          int numOfChecked = 0;
            for (int i = 0; i < this.GridView1.Rows.Count; i++)
            {
                bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
                if (isChecked)
                {
                    numOfChecked++;
                }     
            }               
          if (numOfChecked == 1)
          {
              for (int i = 0; i < this.GridView1.Rows.Count; i++)
              {
                   bool isChecked = ((CheckBox)GridView1.Rows[i].FindControl("chkSelected")).Checked;
                   if (isChecked)
                   {
                      .... 更改密码代码....
                    }
              }   
                  
           }
            else 
            {
             Response.Write("<Script language=JavaScript>alert('您只能选择一个用户!');</Script>");
              return;
          }