Manchmal, wenn Sie in einer bestimmten Phase der Programmierung angekommen sind und es sehr schwierig ist, sich weiter zu verbessern, können Sie genauso gut einen Blick auf die grundlegenden Dinge werfen. Vielleicht gewinnen Sie neue Vorteile, und vielleicht können Sie wirklich verstehen, was Konfuzius sagte: „Die wahre Bedeutung von „die Vergangenheit Revue passieren lassen und das Neue lernen“.
Zu den häufig verwendeten C#-Datenbindungssteuerelementen gehören: Repeater, DataList, GridView, DetailsView usw. Hier werde ich Repeater verwenden, um das Problem kurz zu erläutern.
Verwenden Sie dieses Attribut, um die Datenquelle anzugeben, die zum Füllen des Repeater-Steuerelements verwendet wird. DataSource kann ein beliebiges System.Collections.IEnumerable-Objekt sein,
wie System.Data.DataView, System.Collections.ArrayList, System.Collections.Hashtable, Array oder IListSource-Objekt, das für den Zugriff auf die Datenbank verwendet wird.
Häufig verwendete Datenquellen:
Eine Datentabelle
Eine Datenansicht
Ein DataSet
Jede Komponente, die die IListSource-Schnittstelle implementiert
Jede Komponente, die die IList-Schnittstelle implementiert
Hinweis:
Wenn eine Bindung an ein stark typisiertes Array von Objekten erfolgen soll, muss der Objekttyp öffentliche Eigenschaften enthalten.
Im Folgenden werden anhand einiger einfacher Beispiele die spezifischen Anwendungen von DataSource vorgestellt.
<1>Binding DataTable ruft normalerweise Daten aus der Datenbank ab und bindet sie dann direkt. Die spezifische Datenbankbetriebslogik wird nicht mehr bereitgestellt. Jeder muss damit bestens vertraut sein. Das Binden einer DataView ähnelt diesem.
Programmcode
privatevoidBindData() { //通过业务逻辑,直接调用数据库中的数据 DataTablenTable=getTable(); Repeater1.DataSource=nTable; Repeater1.DataBind(); }
HTML-Code
C#-Datenbindungssteuerungsprogrammcode
<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> Binding Array, ArrayList, List, eindimensionales Array und so weiter, das einfache Daten speichert.
ArrayList
C#-Datenbindungssteuerungsprogrammcode
privatevoidBindData() { ArrayListlist=newArrayList(); list.Add("Jim"); list.Add("Tom"); list.Add("Bluce"); list.Add("Mary"); Repeater1.DataSource=list; Repeater1.DataBind(); }
HTML-gerechte Änderungen
Programmcode
<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>Bind Dictionary, HashTable
Wörterbuch
C#-Datenbindungssteuerungsprogrammcode
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-Code
Programmcode
<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> Bindungsobjektsammlung, IList et al. Dies ist sehr nützlich, wenn wir Daten aus der Datenbank abrufen. Um den Betrieb zu erleichtern, müssen diese Objekte jedoch manchmal in Form einer Liste angezeigt werden Lösung: Objektkonvertierung Für DataTable besteht die andere darin, die Datenbank direkt aufzurufen. Diese beiden Optionen sind nicht ideal. Und hier ist die Objektsammlung direkt an die Datenanzeigesteuerung gebunden, was für mich einen Ausweg aufzeigt. Tatsächlich wird dies in PetShop4.0 zum Binden von ICollection oder IList verwendet. Einfach und klar.
Eine einfache Benutzerklasse, die zwei öffentliche Eigenschaften enthält.
Programmcode
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; } }
Bindungsobjektsammlung:
IList
Programmcode
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(); }
Öffentliche Eigenschaften des entsprechenden Repeater-Bindungsobjekts:
C#-Daten Code des Bindungssteuerungsprogramms
<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>
Das Obige ist der Inhalt der DataSource-Eigenschaft in der C#-Datenbindungssteuerung. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!