有的時(shí)候,你在編程進(jìn)入一定階段,進(jìn)一步提升很困難的境況之下,不妨回過(guò)頭來(lái)看看基礎(chǔ)的東西,或許你會(huì)有新的受益,或許能夠真正的體會(huì)到孔夫子所謂的“溫故而知新”的真正內(nèi)涵。
常用的C#數(shù)據(jù)綁定控件有:Repeater、DataList、GridView、DetailsView等,在這里我拿Repeater來(lái)簡(jiǎn)單說(shuō)明問(wèn)題。
使用該屬性指定用來(lái)填充Repeater控件的數(shù)據(jù)源。DataSource可以是任何System.Collections.IEnumerable對(duì)象,
如用于訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、數(shù)組或IListSource對(duì)象。
常用的數(shù)據(jù)源:
一個(gè)DataTable
一個(gè)DataView
一個(gè)DataSet
任何實(shí)現(xiàn)IListSource接口的組件
任何實(shí)現(xiàn)IList接口的組件
注意:
若要綁定到對(duì)象的強(qiáng)類(lèi)型數(shù)組,該對(duì)象類(lèi)型必須包含公共屬性。
下面通過(guò)幾個(gè)簡(jiǎn)單的實(shí)例來(lái)介紹DataSource的具體應(yīng)用。
<1>綁定DataTable,一般都是從數(shù)據(jù)庫(kù)取出數(shù)據(jù),然后直接進(jìn)行綁定,具體的數(shù)據(jù)庫(kù)操作的邏輯不再提供。想必大家都已經(jīng)非常熟悉。綁定DataView與這個(gè)類(lèi)似。
程序代碼
代碼如下:
privatevoidBindData()
{
//通過(guò)業(yè)務(wù)邏輯,直接調(diào)用數(shù)據(jù)庫(kù)中的數(shù)據(jù)
DataTablenTable=getTable();
Repeater1.DataSource=nTable;
Repeater1.DataBind();
}
HTML代碼
C#數(shù)據(jù)綁定控件程序代碼
代碼如下:
<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、一維數(shù)組之類(lèi),里面存儲(chǔ)簡(jiǎn)單的數(shù)據(jù)。
ArrayList
C#數(shù)據(jù)綁定控件程序代碼
代碼如下:
privatevoidBindData()
{
ArrayListlist=newArrayList();
list.Add("Jim");
list.Add("Tom");
list.Add("Bluce");
list.Add("Mary");
Repeater1.DataSource=list;
Repeater1.DataBind();
}
HTML適當(dāng)改變
程序代碼
代碼如下:
<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#數(shù)據(jù)綁定控件程序代碼
新聞熱點(diǎn)
疑難解答
圖片精選