C#数据绑定控件中的DataSource属性

有的时候,你在编程进入一定阶段,进一步提升很困难的境况之下,不妨回过头来看看基础的东西,或许你会有新的受益,或许能够真正的体会到孔夫子所谓的“温故而知新”的真正内涵。

常用的C#数据绑定控件有:Repeater、DataList、GridView、DetailsView等,在这里我拿Repeater来简单说明问题。

使用该属性指定用来填充Repeater控件的数据源。DataSource可以是任何System.Collections.IEnumerable对象,

如用于访问数据库的System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、数组或IListSource对象。

常用的数据源:

一个DataTable

一个DataView

一个DataSet

任何实现IListSource接口的组件

任何实现IList接口的组件

注意:

若要绑定到对象的强类型数组,该对象类型必须包含公共属性。

下面通过几个简单的实例来介绍DataSource的具体应用。

<1>绑定DataTable,一般都是从数据库取出数据,然后直接进行绑定,具体的数据库操作的逻辑不再提供。想必大家都已经非常熟悉。绑定DataView与这个类似。

程序代码


private void BindData()
{ //通过业务逻辑,直接调用数据库中的数据
DataTable nTable=getTable();
Repeater1.DataSource=nTable;
Repeater1.DataBind();
}

HTML代码

C#数据绑定控件程序代码

<asp:repeater id="Repeater1" runat="server">
<HeaderTemplate>
<table> <tr> <th> 姓名</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、一维数组之类,里面存储简单的数据。ArrayListC#数据绑定控件程序代码

private void BindData()
{
ArrayListlist=newArrayList();
list.Add("Jim");
list.Add("Tom");
list.Add("Bluce");
list.Add("Mary");
Repeater1.DataSource=list;
Repeater1.DataBind();
}

HTML适当改变

程序代码

<asp:Repeater ID="Repeater1"runat="server"> <HeaderTemplate><table><tr><th>姓名</th></tr></HeaderTemplate> <ItemTemplate><tr><td><%#Container.DataItem%></td></tr></ItemTemplate>
<FooterTemplate></table></FooterTemplate> </asp:Repeater>

<3>绑定Dictionary、HashTableDictionaryC#数据绑定控件程序代码

private void BindData()
{
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:Repeater RepeaterID="Repeater1"runat="server"> <HeaderTemplate><table><tr><th>姓名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。简单明了。一个简单的用户类,包含两个公共属性。程序代码

using System;
using System.Data;
/// ///SummarydescriptionforUser ///
public class User
{
private string_Name;
public string Name
{
get{return_Name;}
set{_Name=value;}
}
private int _Age;
public int Age
{
get{return_Age;}
set{_Age=value;}
}
public User()
{ // //TODO:Addconstructorlogichere // }
public User(stringname,intage)
{ _Name=name; _Age=age; }
}

绑定对象集合:

IList

程序代码

private void BindData()
{
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:Repeater ID="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>


转自:http://developer.51cto.com/art/200908/143818.htm
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值