怎样判断CheckBoxList的选项数,超过指定范围(原创)

在做一个选举投票系统的时候遇到的一个问题(后来经孟子指点,得到最终解决),需求要求用户选举的人数不得超过管理员指定的人数范围。举个简单的例子,比如选举班委,要求只能选举7个,用户如果选举8个就会提示用户,超出指定范围,并取消用户刚才的选择项。
可以这样,假设CheckBoxList控件的ID为CheckBoxList1,假设CheckBoxList1已经从数据库中取出了选举人的数据,在它的选择触发事件中这样定义:

private void CheckBoxList1_SelectedIndexChanged(object sender, System.EventArgs e)
  {
   //下面判断用户是否多选,每选择一次比较一次,看是否超过规定名额
   string ClickedItem = Request.Form["__EVENTTARGET"];//得到用户点击的是哪个
   ClickedItem = ClickedItem.Split(':')[1];//进行拆分处理
   int index = Int32.Parse(ClickedItem );
   int x,y;
   y=0;
   n=Convert.ToInt32(this.Label2.Text);//取出规定名额,this.Label2.Text是我在做项目的时候显示指定选举人数的值
   for(x=0;x<this.CheckBoxList1.Items.Count;x++)
   {
    if(this.CheckBoxList1.Items[x].Selected)
    {
     y=y+1;//通过循环得到用户的选项数量
     if(y>n)//跟规定名额做比较
     {
      Response.Write("<script language='javascript'>alert('您的选举人数超过指定范围!');</script>");
      this.CheckBoxList1.Items[index].Selected=false;//让用户超过的选项取消
      //this.CheckBoxList1.Enabled=false;
      //return;

      return;
      //Response.Redirect("vote.aspx");
     }
     //z=x;
    }
   }
   
   //Response.Write(n);
   
  }

posted on 2007-06-24 21:34  RedSoft  阅读(792)  评论(0编辑  收藏  举报