在项目中我们可能会经常遇到一收集多选信息的情况,比如做注册的时候要收集个人爱好,那时候大家第一个想到的肯定是CheckBoxList。那我们怎么来获取到CheckBoxList的值并且存入数据库呢??

如果我们还需要编辑用户的个人信息而其中爱好也是可以改动的,此时同样大家也会想用CheckBoxList去显示用户的各人信息,那我们又要如何将库里的值用CheckBoxList表示出来呢?? 编辑分析问题
遇到这种情况大家肯定想到for,foreach去遍历,没错这样完没有问题,不管是获取CheckBoxList的值还是设置CheckBoxList的值我们都可以用遍历去实现。而我这里将大家常用的方法总结了一下,做了两个方法。这样用起来能更方便灵活。

举个例子:我们要收集某某公司员工的信息其中一项是爱好。而且要求员工信息可以改动

我们选用了CheckBoxList来实现爱好的收集和显示

方法:

......

1.收集时,将CheckBoxList里选中的项转换成字符串,并用“,”隔开
这里只要调用方法GetChecked(CheckBoxList checkList, string separator)
就可以获取到想要的数据。然后存入数据库。

2.显示时,先从库里获取爱好的数据(刚刚用“,”隔开的字符串),
 然后调用方法SetChecked(CheckBoxList checkList,string selval,string separator)
就可以将库里的数据用CheckBoxList的形式表现出来

......
方法的使用: 
//这里获取CheckBoxList中的选中项并用","隔开
string str=GetChecked(this.checkList1, ",");
......
//这里是将str这个字符串的值又设回CheckBoxList
SetChecked(this.checkList1,str,",");

/// <summary>
        /// 初始化CheckBoxList中哪些是选中了的         /// </summary>
        /// <param name="checkList">CheckBoxList</param>
        /// <param name="selval">选中了的值串例如:"0,1,1,2,1"</param>
        /// <param name="separator">值串中使用的分割符例如"0,1,1,2,1"中的逗号</param>
        public static string SetChecked(CheckBoxList checkList,string selval,string separator)
        {
            selval = separator + selval + separator;        //例如:"0,1,1,2,1"->",0,1,1,2,1,"
            for(int i=0; i<checkList.Items.Count; i++)
            {
                checkList.Items[i].Selected = false;
                string val = separator + checkList.Items[i].Value + separator;
                if(selval.IndexOf(val)!=-1)
                {
                    checkList.Items[i].Selected = true;
                    selval = selval.Replace(val,separator);        //然后从原来的值串中删除已经选中了的
                    if(selval == separator)        //selval的最后一项也被选中的话,此时经过Replace后,只会剩下一个分隔符
                    {        
                        selval += separator;        //添加一个分隔符
                    }
                }
            }
            selval = selval.Substring(1,selval.Length-2);        //除去前后加的分割符号
            return selval;
        }

/// <summary>
        /// 得到CheckBoxList中选中了的值
        /// </summary>
        /// <param name="checkList">CheckBoxList</param>
        /// <param name="separator">分割符号</param>
        /// <returns></returns>
        public static string GetChecked(CheckBoxList checkList, string separator)
        {
            string selval = "";
            for(int i=0;i<checkList.Items.Count;i++)
            {
                if(checkList.Items[i].Selected)
                {
                    selval += checkList.Items[i].Value + separator;
                }
            }
            return selval;
        }

设置或者得到CheckBoxList选中了的值的更多相关文章

  1. 设置或者获取CheckboxList控件的选中值

    1.设置CheckBoxList选中的值 /// <summary> /// 设置CheckBoxList中哪些是选中了的 /// </summary> /// <par ...

  2. 设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选

    设置checkbox选中,设置radio选中,根据值设置checkbox选中,checkbox勾选 >>>>>>>>>>>>&g ...

  3. 获取checkboxlist选中的值以及绑定来自之前选中的来自数据库的值

    //////ps:一下几句都是一个意思,为的是以后有人搜索关键字的时候能定位到这里///checkboxlist绑定选中值///checkboxlist绑定来之mssql数据的值///checkbox ...

  4. js 得到 radiobuttonlist和CheckBoxList 选中值

    js 得到 radiobuttonlist和CheckBoxList 选中值 得到radiobuttonlist 选中值:var CheckBoxList=document.all.optButton ...

  5. jquery 获取和设置 checkbox radio 和 select option的值?

    ============== 获取和设置 checkbox radio 和 select的值? === val()函数, 其名字就表达了 它的意思: 他就是= value 的简写! val就是valu ...

  6. jquery设置div,文本框 表单的值示例

    我们将使用前一章中的三个相同的方法来设置内容: text() - 设置或返回所选元素的文本内容html() - 设置或返回所选元素的内容(包括 HTML标记)val() - 设置或返回表单字段的值 1 ...

  7. jquery实现全选、全不选、反选、获取选中的所有值总结

    HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮. <!doctype html> <html> <head& ...

  8. 利用jQuery动态设置单选框的选中

    一.需要实现的效果 这里使用jQuery来实现.需要实现的效果如下:当下拉条改变时,单选框选中的值随之变化. <!DOCTYPE html> <html> <head&g ...

  9. jquery操作select(选中,取值)

    最近工作中总出现select 和 option问题,整理一下,内容大部分源于网络资料 一.基础取值问题 例如<select class="selector"></ ...

随机推荐

  1. XPath教程

    XPath 简介 XPath 是一门在 XML 文档中查找信息的语言.XPath 可用来在 XML 文档中对元素和属性进行遍历. XPath 是 W3C XSLT 标准的主要元素,并且 XQuery ...

  2. Spring JdbcTemplate+JdbcDaoSupport实例

    在Spring JDBC开发中,可以使用 JdbcTemplate 和 JdbcDaoSupport 类来简化整个数据库的操作过程. 在本教程中,我们将重复上一篇文章Spring+JDBC例子,看之前 ...

  3. 修改Linux默认启动级别或模式

    在Linux中有7种启动级别,默认是X-Window,像是Windows的窗口模式,而Linux的操作和配置一般我们都采用输入命令的方式来完成,像DOS操作系统一样,如何让Linux一启动就进入这种模 ...

  4. JSP中Out和Request对象详解

    内置表示不需要new便可直接使用. 一.基础知识 1.缓冲区:IO最原始是一个一个字节的读取,这就像吃米饭的时候一粒一粒的吃,很没有效率,这时候就有了碗,一碗一碗的吃,岂不痛快. 2.Get提交不能超 ...

  5. UnsupportedOperationException:can&#39;t convert to dimension :typx=0x1

    at android.content.res.TypeArray.getDimensionPixelSize(TypeArray.java:463) 今天在给项目做适配执行项目时遇到这个错误,发生错误 ...

  6. [js插件]分享一个文章内容信息提示插件Colortip

    引用 项目中需要一个信息提示的功能,就上网找了一个插件,发现colortip实现比较简单,就定了这个插件. 实现过程 官网:http://tutorialzine.com/2010/07/colort ...

  7. ORACLE单表理论最大记录数

    不考虑硬件诸如内存,存储等硬件的限制. 一张表理论能存储多少条记录呢? 假设: 一个tablespace中包含1022个datafiles, 单个datafiles的最大是32G 假设每个block是 ...

  8. Computer Vision Tutorials from Conferences (2) -- ECCV

    ECCV 2012 (http://eccv2012.unifi.it/program/tutorials/) Vision Applications on Mobile using OpenCVGa ...

  9. django知识点回顾与补充

    一.django知识点回顾 1.Cookie操作 - 客户端本地存储的键值对 2.Session操作 - 3.URL路由 - /index -> view.函数 4.MTV 5.View中返回方 ...

  10. Morton Code

    莫顿码 ,实现了一维与二维(或多维)的转换.它通过交叉存储两个数的位产生一个数,即莫顿码. 可以应用于为一个整数对产生一个唯一索引. 例如,对于坐标系中的坐标点使用莫顿编码生成的莫顿码,可以唯一索引对 ...