华域联盟 .Net C#数据绑定控件中的DataSource属性浅谈

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与这个类似。
程序代码

复制代码 代码如下:

privatevoidBindData() 



//通过业务逻辑,直接调用数据库中的数据 

DataTablenTable=getTable(); 

Repeater1.DataSource=nTable; 

Repeater1.DataBind(); 

}

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

复制代码 代码如下:

<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、一维数组之类,里面存储简单的数据。
ArrayList
C#数据绑定控件程序代码

复制代码 代码如下:

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>

您可能感兴趣的文章:

  • C#数据绑定(DataBinding)简单实现方法
  • c#数据绑定之linq使用示例
  • c#数据绑定之向查询中添加参数(.Net连接外部数据库)
  • c#数据绑定之数据转化为信息的示例
  • c#数据绑定之删除datatable数据示例
  • c#数据绑定之将datatabel的data添加listView
  • C# TextBox数据绑定的方法

本文由 华域联盟 原创撰写:华域联盟 » C#数据绑定控件中的DataSource属性浅谈

转载请保留出处和原文链接:https://www.cnhackhy.com/47405.htm

本文来自网络,不代表华域联盟立场,转载请注明出处。

作者: sterben

发表回复

联系我们

联系我们

2551209778

在线咨询: QQ交谈

邮箱: [email protected]

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部