黑马程序员技术交流社区

标题: Checkboxlist数据源绑定 [打印本页]

作者: 杨占伟    时间: 2012-12-4 20:24
标题: Checkboxlist数据源绑定
本帖最后由 杨占伟 于 2012-12-4 23:04 编辑

代码如下:
            ArrayList books = new ArrayList();
            books.Add("c#基础教程");
            books.Add("ASP.Net简明教程");
            books.Add("Web程序设计");
            books.Add("VB.net程序设计");
            books.Add("J#Web应用程序设计");
            books.Add("JavaScript编程技巧");
            CheckBoxList1.DataSource = books;    //这里是不是只能赋给ArrayList类型的数组
            CheckBoxList1.DataBind();               // 这句话的原理是什么?

CheckBoxList1.DataSource = books;这里已经赋过值,为什么还要执行下面这句CheckBoxList1.DataBind();  
作者: 汪书凯    时间: 2012-12-4 21:20
前一句只是指定数据源,还没有执行绑定操作,而后一句才是把数据源里的数据绑定在控件上。    打个比方:我给你吃个蛋糕,我把蛋糕给你,这就好像是datagrid.datasource=object,只是把蛋糕给你了,但你还没有吃,而你吃下这个蛋糕,就等于 databind()。
作者: 杨占伟    时间: 2012-12-4 23:03
汪书凯 发表于 2012-12-4 21:20
前一句只是指定数据源,还没有执行绑定操作,而后一句才是把数据源里的数据绑定在控件上。    打个比方:我 ...

这个吃蛋糕的比喻真的很形象,非常感谢~~
作者: 生活墨墨    时间: 2012-12-5 08:58
不一定是ArrayList,例如如果是Linq的话,可以直接赋值给他,CheckBoxList1.DataSource = from b in books select b;
作者: 生活墨墨    时间: 2012-12-5 08:59
补充说明:
只是数据源的问题而已,还可以直接在页面是进行绑定
作者: 刘亚龙    时间: 2012-12-6 13:55
DataSource是用来填充控件的数据源,数据源可以是任何实现IEnumerable的对象,就是说可以是ArrayList可以是数组,但更多的时候用DataSource指定DataTable或DataSet类型的数据源。
CheckBoxList1.DataSource = books;    //这里是将CheckBoxList1的数据源指定为books,我觉得用“指定”更合适,这会没有真的得到数据   
CheckBoxList1.DataBind();    //这里才是把数据绑定到控件上




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2