C#数据绑定控件中的DataSource属性浅谈 |
本文标签:DataSource 有的时候,你在编程进入一定阶段,进一步提升很困难的境况之下,不妨回过头来看看基础的东西,或许你会有新的受益,或许能够真正的体会到孔夫子所谓的“温故而知新”的真正内涵 。 复制代码 代码如下: privatevoidBindData() { //通过业务逻辑,直接调用数据库中的数据 DataTablenTable=getTable(); Repeater1.DataSource=nTable; Repeater1.DataBind(); } HTML代码 复制代码 代码如下: <asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server"> <HeaderTemplate> <table> <tr> <thscopethscope="col"> 姓名th> <th> 年龄th> <tr> <HeaderTemplate> <ItemTemplate> <tr> <td> <%#Eval("Key")%> <td> <td> <%#Eval("value")%> <td> <tr> <ItemTemplate> <FooterTemplate> <table><FooterTemplate> <asp:Repeater> <2>绑定Array、ArrayList、List、一维数组之类,里面存储简单的数据 。 复制代码 代码如下: privatevoidBindData() { ArrayListlist=newArrayList(); list.Add("Jim"); list.Add("Tom"); list.Add("Bluce"); list.Add("Mary"); Repeater1.DataSource=list; Repeater1.DataBind(); } HTML适当改变 程序代码 复制代码 代码如下: <asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server"> <HeaderTemplate><table><tr><thscopethscope="col">姓名<th><tr><HeaderTemplate> <ItemTemplate><tr><td><%#Container.DataItem%><td><tr><ItemTemplate> <FooterTemplate><table><FooterTemplate> <asp:Repeater> <3>绑定Dictionary、HashTable Dictionary C#数据绑定控件程序代码 复制代码 代码如下: privatevoidBindData() { Dictionary<string,int>dic=newDictionary<string,int>(); dic.Add("Jim",21); dic.Add("Tom",26); dic.Add("Bluce",33); dic.Add("Mary",18); Repeater1.DataSource=dic; Repeater1.DataBind(); } HTML代码 程序代码 复制代码 代码如下: <asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server"> <HeaderTemplate><table><tr><thscopethscope="col">姓名<th><th>年龄<th><tr><HeaderTemplate> <ItemTemplate><tr><td><%#Eval("Key")%>td><td><%#Eval("value")%><td><tr><ItemTemplate> <FooterTemplate><table><FooterTemplate> <asp:Repeater> <4>绑定对象集合,IList等 。这个很是有用,在我们进行数据查询的时候,经常从数据库取出数据,为了方便操作,需要封装成对象,但是有的时候需要将这些对象以列表的形式显示出来,一种解决方案:对象转换为DataTable,另一种就是直接调用数据库 。这两种方案,并不是很理想 。而这里直接将对象集合直接绑定到数据显示控件,给我指明一条出路 。其实,在PetShop4.0就是利用这一点,绑定ICollection或者IList 。简单明了 。 一个简单的用户类,包含两个公共属性 。 程序代码 复制代码 代码如下: usingSystem; usingSystem.Data; /// ///SummarydescriptionforUser /// publicclassUser { privatestring_Name; publicstringName { get{return_Name;} set{_Name=value;} } privateint_Age; publicintAge { get{return_Age;} set{_Age=value;} } publicUser() { // //TODO:Addconstructorlogichere // } publicUser(stringname,intage) { _Name=name; _Age=age; } } 绑定对象集合: IList 程序代码 复制代码 代码如下: privatevoidBindData() { Useruser1=newUser("Jim",21); Useruser2=newUser("Tom",23); Useruser3=newUser("Bluce",33); Useruser4=newUser("Mary",18); IList<User>list=newList<User>(); list.Add(user1); list.Add(user2); list.Add(user3); list.Add(user4); Repeater1.DataSource=list; Repeater1.DataBind(); } 对应的Repeater绑定对象的公共属性: C#数据绑定控件程序代码 复制代码 代码如下: <asp:RepeaterIDasp:RepeaterID="Repeater1"runat="server"> <HeaderTemplate> <table> <tr> <thscopethscope="col"> 姓名th> <th> 年龄<th> <tr> <HeaderTemplate> <ItemTemplate> <tr> <td> <%#Eval("Name")%> <td> <td> <%#Eval("Age")%> <td> <tr> <ItemTemplate> <FooterTemplate> <table><FooterTemplate> <asp:Repeater> |