A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨占伟 中级黑马   /  2012-12-4 20:24  /  1580 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨占伟 于 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();  

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

5 个回复

倒序浏览
前一句只是指定数据源,还没有执行绑定操作,而后一句才是把数据源里的数据绑定在控件上。    打个比方:我给你吃个蛋糕,我把蛋糕给你,这就好像是datagrid.datasource=object,只是把蛋糕给你了,但你还没有吃,而你吃下这个蛋糕,就等于 databind()。

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
汪书凯 发表于 2012-12-4 21:20
前一句只是指定数据源,还没有执行绑定操作,而后一句才是把数据源里的数据绑定在控件上。    打个比方:我 ...

这个吃蛋糕的比喻真的很形象,非常感谢~~
回复 使用道具 举报
不一定是ArrayList,例如如果是Linq的话,可以直接赋值给他,CheckBoxList1.DataSource = from b in books select b;

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
补充说明:
只是数据源的问题而已,还可以直接在页面是进行绑定
回复 使用道具 举报
DataSource是用来填充控件的数据源,数据源可以是任何实现IEnumerable的对象,就是说可以是ArrayList可以是数组,但更多的时候用DataSource指定DataTable或DataSet类型的数据源。
CheckBoxList1.DataSource = books;    //这里是将CheckBoxList1的数据源指定为books,我觉得用“指定”更合适,这会没有真的得到数据   
CheckBoxList1.DataBind();    //这里才是把数据绑定到控件上

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马