Maison  >  Article  >  développement back-end  >  Une brève discussion sur la propriété DataSource dans les contrôles de liaison de données C#

Une brève discussion sur la propriété DataSource dans les contrôles de liaison de données C#

黄舟
黄舟original
2017-01-19 11:15:342108parcourir

Parfois, lorsque vous êtes entré dans une certaine étape de programmation et qu'il est très difficile de s'améliorer davantage, autant revenir en arrière et regarder les bases. Peut-être que vous obtiendrez de nouveaux avantages, et peut-être pourrez-vous vraiment comprendre ce que Confucius. » a dit le vrai sens de « revoir le passé et apprendre le nouveau ».
Les contrôles de liaison de données C# couramment utilisés incluent : Repeater, DataList, GridView, DetailsView, etc. Ici, j'utiliserai Repeater pour expliquer brièvement le problème.
Utilisez cet attribut pour spécifier la source de données utilisée pour remplir le champ Répéteur. DataSource peut être n'importe quel objet System.Collections.IEnumerable,
tel que System.Data.DataView, System.Collections.ArrayList, System.Collections.Hashtable, un tableau ou un objet IListSource utilisé pour accéder à la base de données.
Sources de données couramment utilisées :
Un DataTable
Un DataView
Un DataSet
Tout composant qui implémente l'interface IListSource
Tout composant qui implémente l'interface IList
Remarque :
Si Pour se lier à un tableau d'objets fortement typés, le type d'objet doit contenir des propriétés publiques.
Ce qui suit utilise quelques exemples simples pour présenter les applications spécifiques de DataSource.
f35d6e602fd7d0f0edfa6f7d103c1b57La liaison d'un DataTable récupère généralement les données de la base de données, puis les lie directement. La logique de fonctionnement spécifique de la base de données n'est plus fournie. Tout le monde doit le connaître très bien. La liaison d'un DataView est similaire à ceci.
Code du programme

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

Code HTML
Code du programme de contrôle de liaison de données 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>

2cc198a1d5eb0d3eb508d858c9f5cbdb ainsi de suite, qui stocke des données simples.
ArrayList
Code du programme de contrôle de liaison de données C#

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

Modifications HTML appropriées
Code du programme

<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>

5bdf4c78156c7953567bb5a0aef2fc53Dictionnaire de liaison, HashTable
Dictionnaire
Code du programme de contrôle de liaison de données 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();    
}


Code HTML
Code du programme

<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>

23889872c2e8594e0f446a471a78ec4c Ceci est très utile. Lorsque nous effectuons une requête de données, nous récupérons souvent des données de la base de données. Afin de faciliter le fonctionnement, elles doivent être encapsulées dans des objets. Cependant, ces objets doivent parfois être affichés sous la forme d'une liste. solution : conversion d'objet Pour DataTable, l'autre consiste à appeler directement la base de données. Ces deux options ne sont pas idéales. Et ici, la collection d'objets est directement liée au contrôle d'affichage des données, m'indiquant une issue. En fait, dans PetShop4.0, ceci est utilisé pour lier ICollection ou IList. Simple et clair.
Une classe d'utilisateurs simple contenant deux propriétés publiques.
Code du programme

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;  
}  
}

Collection d'objets de liaison :
IList
Code du programme

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();    
}

Propriétés publiques de l'objet de liaison Repeater correspondant :
Données C# code du programme de contrôle de liaison

<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>

Ce qui précède est le contenu de la propriété DataSource dans le contrôle de liaison de données C#. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn