C# データ バインディング コントロールの DataSource プロパティに関する簡単な説明

黄舟
リリース: 2017-01-19 11:15:34
オリジナル
2115 人が閲覧しました

プログラミングが特定の段階に達し、これ以上改善するのが非常に難しい場合は、基本に立ち返って考えてみると、新たな利点が得られるかもしれません。また、孔子の言う「論」を真に理解できるかもしれません。本当の意味での「温故知新」。
一般的に使用される C# データ バインディング コントロールには、Repeater、DataList、GridView、DetailsView などが含まれます。ここでは、Repeater を使用して問題を簡単に説明します。
このプロパティを使用して、Repeater コントロールに入力するために使用されるデータ ソースを指定します。 DataSource には、データベースへのアクセスに使用される System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable、配列、または IListSource オブジェクトなどの System.Collections.IEnumerable オブジェクトを指定できます。
一般的に使用されるデータ ソース:
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>gt;単純なデータを格納する配列、ArrayList、List、1次元配列などをバインドします。

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>gt;Bind 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 の場合、もう 1 つはデータベースを直接呼び出すことです。これら 2 つのオプションは理想的ではありません。ここでは、オブジェクト コレクションがデータ表示コントロールに直接バインドされており、解決策を示しています。実際、PetShop4.0 では、これは ICollection または IList をバインドするために使用されます。わかりやすい。

2 つのパブリック プロパティを含む単純なユーザー クラス。
プログラムコード

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#データバインディングコントロールのDataSourceです属性について簡単に説明しました。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!