<input id="Checkbox1" type="checkbox" name="ckblb" value="1" />目的地综合
<input id="Checkbox2" type="checkbox" name="ckblb" value="2" />旅游景区
<input id="Checkbox3" type="checkbox" name="ckblb" value="3" />旅行社
<input id="Checkbox4" type="checkbox" name="ckblb" value="4" />餐饮场所
<input id="Checkbox5" type="checkbox" name="ckblb" value="5" />住宿场所
<input id="Checkbox6" type="checkbox" name="ckblb" value="6" />目的地综合
<input id="Checkbox7" type="checkbox" name="ckblb" value="7" />旅游商品
<input id="Checkbox8" type="checkbox" name="ckblb" value="8" />娱乐场所
<input id="Checkbox9" type="checkbox" name="ckblb" value="9" />旅游线路
<input id="Checkbox10" type="checkbox" name="ckblb" value="10" />旅游法规
<input id="Checkbox11" type="checkbox" name="ckblb" value="11" />旅游提示比如我这有11个checkbox  当我点击添加按钮的时候  它如何将选中的checkbox添加到数据库中(格式要求为 1,2,3,4,5,6,7,8,9,10,11)  必须用逗号分隔开来
当选择修改某条数据的时候时,怎么才能从数据库中读取checkbox这个字段的值    让页面上的checkbox控件选中了啊??
大家帮帮忙啊 ?在线等  立即给分啊?

解决方案 »

  1.   

    用checkboxlist吧//1.绑定数据    this.lngCatalogID.DataSource = dt;  //这里我绑到DataTable上了.
        this.lngCatalogID.DataTextField = "strCatalogName";  //前台看到的值,也就是CheckBoxList中显示出来的值
        this.lngCatalogID.DataValueField = "lngCatalogID";  //这个值直接在页面上是看不到的,但在源代码中可以看到
        this.lngCatalogID.DataBind();//2.获取钩选的项 foreach(ListItem li in lngCatalogID.Items)
        {
         if(li.Selected)    //表示某一项被选中了
         {    
                //li.Test表示看到的值,对应上面的strCatalogName
                //li.Value表示看到的值对应的值.对应上面的lngCatalogID
          }     
        }  //3.设置某项为钩选状态    foreach(ListItem li in lngCatalogID.Items)
        {
          if(li.Value.Equals("钩选条件"))    //如果li.Value值等于某值,就钩选
          {
           li.Selected = true;                    //等于true就表示钩选啦.
           break;
          }        
        } 
         //数据绑定
    checkedListBox1.DataSource=ds.Tables[0];
    checkedListBox1.ValueMember="intSectionID";
    checkedListBox1.DisplayMember="txtShortDesc".ToString();
    //数据显示
    int count = checkedListBox1.Items.Count;
    for (int i = 0;i<count;i++)
    {
    if (checkedListBox1.GetItemChecked(i))
    {
    MessageBox.Show(checkedListBox1.Items[i].ToString());
    }
    }
      

  2.   

                '取11个checkbox的勾选情况,保存到数据库
                Dim i As Integer = 0
                Dim str As String = String.Empty
                For i = 1 To 11
                    Dim chk As CheckBox
                    chk = CType(Me.FindControl("Checkbox" & i), CheckBox)
                    If chk.Checked = True Then
                        str += i.ToString
                        str += ","
                    End If
                Next
                str = str.Substring(0, str.Length - 1)
                '把str 的值,更新到数据库            '假设str为在数据库取到的值,格式类似 1,2,3,5,7,10
                '根据str的值,让对应的Checkbox勾选上
                Dim strValue() As String = str.Split(",")
                For i = 0 To strValue.Length - 1
                    CType(Me.FindControl("Checkbox" & strValue(i)), CheckBox).Checked = True
                Next
      

  3.   

    C#版
    //取11个checkbox的勾选情况,保存到数据库 { 
        int i = 0; 
        string str = string.Empty; 
        for (i = 1; i <= 11; i++) { 
            CheckBox chk = default(CheckBox); 
            chk = (CheckBox)this.FindControl("Checkbox" + i); 
            if (chk.Checked == true) { 
                str += i.ToString; 
                str += ","; 
            } 
        } 
        str = str.Substring(0, str.Length - 1); 
        //把str 的值,更新到数据库 
        
        //假设str为在数据库取到的值,格式类似 1,2,3,5,7,10 
        //根据str的值,让对应的Checkbox勾选上 
        string[] strValue = str.Split(","); 
        for (i = 0; i <= strValue.Length - 1; i++) { 
            ((CheckBox)this.FindControl("Checkbox" + strValue(i))).Checked = true; 
        } 
      

  4.   

    为什么不用asp.net的CheckBox?
    里面不是有CheckedChanged事件。。
      

  5.   

    直接在后台
    string zhi=request["ckblb"].tostring();//取出来的值为  1,2,3(前三个选中的话)然后在将其存入数据库就是你那种形式了。
      

  6.   


            string s=string.Empty;
            foreach (Control childControl in this.Controls)
            {
                if (childControl.GetType() == typeof(HtmlForm))
                {
                    foreach (Control item in childControl.Controls)
                    {
                        if (item.GetType() == typeof(CheckBox))
                        {
                            CheckBox chk = (CheckBox)item;
                            if (chk.Checked)
                            {
                                s += chk.ID.Substring(chk.ID.Length - 1);
                                s += ",";
                            }
                        }
                    }
                }
            }
            s = s.Substring(s.Length - 1);
            //插入数据库
      

  7.   

    用checkboxList很简单或调用js 获取数据,赋值给隐藏域,再取值
    function hs(){
    var s = document.getElementsByName("chkStudent");
    var s2 = "";
    for( var i = 0; i < s.length; i++ )
    {
    if ( s[i].checked ){
    s2 += s[i].value+'','';
    }
    }
    s2 = s2.substr(0,s2.length-1);
    alert(s2);
    }<INPUT TYPE="checkbox" NAME="chkStudent" value=1>1<br>
    <INPUT TYPE="checkbox" NAME="chkStudent" value=2>2<br>
    <INPUT TYPE="checkbox" NAME="chkStudent" value=3>3<br>
    <INPUT TYPE="checkbox" NAME="chkStudent" value=4>4<br>
    <INPUT TYPE="checkbox" NAME="chkStudent" value=5>5<br>
    <INPUT TYPE="button" value=''结果'' ōnclick="A()">
    参考
      

  8.   


    string s = "1,2,3,4,5";  //从数据库取出
            string[] str = s.Split(',');
            foreach (Control childControl in this.Controls)
            {
                if (childControl.GetType() == typeof(HtmlForm))
                {
                    foreach (Control item in childControl.Controls)
                    {
                        if (item.GetType() == typeof(CheckBox))
                        {
                            CheckBox chk=(CheckBox)item;
                            string i=chk.ID.Substring(chk.ID.Length-1);
                            for(int j=0;j<str.Length;j++)
                            {
                                if (i == j)
                                    chk.Checked = true;
                            }
                        }
                    }
                }
            }
      

  9.   

     //直接在后台 
    string zhi=request["ckblb"].tostring();//取出来的值为  1,2,3(前三个选中的话) //然后在将其存入数据库就是你那种形式了。
    //怎样选中
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
              
                string ss = "1,2,3";
                //这个值,你可以先从数据库中获取。在赋值给  ss,这里只是一个举例为1,2,3            string[] arr= ss.Split(",").ToString();            foreach (Control ct in form1.Controls)
                {
                    if (ct.GetType().ToString().Equals("System.Web.UI.HtmlControls.HtmlInputCheckBox"))
                    {
                        HtmlInputCheckBox cb = (HtmlInputCheckBox)ct;                    for (int j = 0; j < arr.Length;i++)
                        {
                            if (cb.Value == arr[j].ToString())
                            {
                                cb.Checked = true;
                            }
                            else
                            {
                                cb.Checked = false;
                            }
                        }
                                         }
                }
            }
        }
      

  10.   

    不明白楼主的意思,我是要用JS  没有办法啊  页面上全是图片的按钮。
    说清楚点嘛?上面我给你发的应该可以解决问题了。如何选中checkbox 请参见我的博客
    http://blog.csdn.net/chenjianyong94/archive/2009/06/29/4306635.aspx
      

  11.   

    如果是判断勾选循环各控件,勾选设为1否则0
    写入数据库形式:10010010011,不用逗号分割
    读取时用循环FOR i=0每次用i做取字符串的起始位,取1个字符,然后根据字符给控件赋值即可
      

  12.   

            function CheckSelected()
               {
        var chks = document.getElementsByTagName("input");
    var a =new Array();
    var j;
        for(i=0;i<chks.length;i++)
        {
            if(chks[i].checked&&(chks[i].type=="checkbox"||chks[i].type=="radio"))
            {
              for(j=i;j<i+1;j++)
               {
                a[j]=i;
                }
            }
        }
        if(a!="")
        {
           location.href='Research.aspx?Edit='+a;
         }
         else
         {
           alert('请先选择选项后再提交!');
           return false;
         }
        }
    a数组中就是你要的值
      

  13.   

    定义变量string  a="";
    先for(循环多选框){
    a+=值+",";
    }
    保存数据库
      

  14.   



     ((CheckBox)this.FindControl("Checkbox"+ strValue(i))).Checked=true; 

    你这个是获得asp:checkbox 的值的啊    有没有办法获得
      <input id="Checkbox1" type="checkbox" name="ckblb" value="1" />目的地综合  的值啊  大哥帮帮忙啊
                                              
      

  15.   

    这样就可以实现了
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="1" />目的地综合 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="2" />旅游景区 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="3" />旅行社 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="4" />餐饮场所 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="5" />住宿场所 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="6" />目的地综合 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="7" />旅游商品 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="8" />娱乐场所 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="9" />旅游线路 
    <input id="Checkbox1" type="checkbox" name="Checkbox1" value="10" />旅游法规 
    <input id="Checkbox11" type="checkbox" name="Checkbox1" value="11" />旅游提示 string aa = Request.Form["Checkbox1"];
      

  16.   

    id和name都一样。在CS页用Request.Form接收,就可以实现了,而且是用逗号分开的。