有關于CheckBoxList的item被選中,能不能得到當前選中的那個item的index or value

解决方案 »

  1.   


    http://blog.csdn.net/xft_1981/archive/2007/06/22/1661721.aspx
    主要代码
     for(int i = 0;i < chbClientState.Items.Count;i++)
       {
        if(chbClientState.Items[i].Selected)
        {
         Response.Write(chbClientState.Items[i].Value);
        }
       } 
      

  2.   

    CheckBoxList是多选
    如果要知道所有选中的项,请遍历 for ...
    如果要知道当前点选的项,要在CheckBoxList的点击事件里写代码(js)
      

  3.   

    你用一个FOR判断一个他是否被选中。
    如:for (i=0;i<=Chklist.Items.Count-1;i++)
    {
        if (Chklist.Items[i].Selected == true)
        {
            int Index = i;
            string Myvalue = Chklist.Items[i].Value;
        }
    }
      

  4.   

    可以; this.CheckBoxList.SelectedIndex;
     this.CheckBoxList.SelectedItem;
     this.CheckBoxList.SelectedValue;
      

  5.   

     for (int i=0;i<CheckBoxList1.Items.Count;i++)
            {
                Response.Write(CheckBoxList1.Items[i].Selected.ToString() +  "  " + i.ToString());            
            }
      

  6.   

    我沒把問題描述清楚
    1.界面上已經有選中的item
    2.我寫的得到當前選中的那個item
    而你們所寫的,只能得到selected item,不是我想要的功能
    界面上有10個item,有5個原來就有的,現在又選中了一個,
    我要的是現在選中的這個,而不是原本那5個的index or value,
    請大家再幫我想想
      

  7.   

    那你之前选中的五个是从数据库或其他得来的吧。
    然后你再跟你现在得到的选中的值对比一下。一对比就知道你这次选中了哪些值和INDEX了。
      

  8.   

    //lz参考下 
    //bind  
            DataTable table = getDataTable("SELECT roleName,roleID FROM table1");//your dataSource
            for (int i = 0; i < table.Rows.Count; i++)
            {
               CheckBoxListRole.Items.Add(new ListItem(table.Rows[i]["roleName"].ToString(),table.Rows[i]["roleID"].ToString()));
            }
    //遍历判断
            for (int i = 0; i < CheckBoxListRole.Items.Count; i++)
            {
                if (CheckBoxListRole.Items[i].Selected)
                {
                    //there
                    //i
                }
            }
      

  9.   


    for (i=0;i<=Chklist.Items.Count-1;i++)
    {
        if (Chklist.Items[i].Selected == true)
        {
            //在这里加个判断,下面就以index来对比,你可以用Value来对比
             if (那串选中index字符串.IndexOf(i)!=-1)
            {
               int Index = i;
               string Myvalue = Chklist.Items[i].Value;
            }
        }
    }
      

  10.   

     
    //bind  
            DataTable table = getDataTable("SELECT roleName,roleID FROM table1");//your dataSource
            for (int i = 0; i < table.Rows.Count; i++)
            {
               CheckBoxListRole.Items.Add(new ListItem(table.Rows[i]["roleName"].ToString(),table.Rows[i]["roleID"].ToString()));
            }
    //遍历判断
            for (int i = 0; i < CheckBoxListRole.Items.Count; i++)
            {
                if (CheckBoxListRole.Items[i].Selected)
                {
                    //there
                    //i
                }
            }
      

  11.   

    遍历所有item,去掉原来的那5个选中的就行了
      

  12.   

    你們所說的我都明白,但是我想實現的功能是選中哪個,得到哪個控件的index or value
    我想知道我問的,有沒有辦法實現,而不是怎么去實現把數據保存到數據庫里,或者比對
    請大家按照我的思路去想有沒有辦法實現好嗎?
      

  13.   

    参考一下:
            protected void Page_Load(object sender, EventArgs e)
            {
                Dictionary<int, bool> dic = new Dictionary<int, bool>();
                for (int i = 0; i < CheckBoxList1.Items.Count; i++)
                    dic.Add(i, CheckBoxList1.Items[i].Selected);
                if (ViewState["cblChecked"] == null)
                    ViewState["cblChecked"] = dic;
            }
            protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
            {
                if (ViewState["cblChecked"] != null)
                {
                    Dictionary<int, bool> dic = ViewState["cblChecked"] as Dictionary<int,bool>;
                    for (int i = 0; i < CheckBoxList1.Items.Count; i++)
                    {
                        if (dic[i] != CheckBoxList1.Items[i].Selected)
                            Response.Write("当前操作项为:" + i.ToString());
                        dic[i] = CheckBoxList1.Items[i].Selected;
                    }
                    ViewState["cblChecked"] = dic;
                }
            }
      

  14.   

    觉得16楼的可以,用viewstate保存选项的信息