您好,登錄后才能下訂單哦!
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>
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。