>  기사  >  백엔드 개발  >  C# 데이터 바인딩 컨트롤의 DataSource 속성에 대한 간략한 설명

C# 데이터 바인딩 컨트롤의 DataSource 속성에 대한 간략한 설명

黄舟
黄舟원래의
2017-01-19 11:15:342116검색

가끔 프로그래밍의 특정 단계에 접어들었고 더 이상 개선하기가 매우 어려울 때 돌아가서 기본 사항을 살펴보는 것이 좋을 수도 있습니다. 어쩌면 새로운 이점을 얻게 될 수도 있고, 무엇을 진정으로 이해할 수도 있을 것입니다. 공자는 “과거를 되돌아보고 새로운 것을 배우는 것”의 진정한 의미를 말했습니다.
일반적으로 사용되는 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의 특정 애플리케이션을 소개합니다.
f35d6e602fd7d0f0edfa6f7d103c1b57DataTable 바인딩은 일반적으로 데이터베이스에서 데이터를 검색한 후 직접 바인딩합니다. 더 이상 특정 데이터베이스 작업 로직이 제공되지 않습니다. 모두가 그것에 대해 매우 잘 알고 있을 것입니다. 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>

2cc198a1d5eb0d3eb508d858c9f5cbdbArray, 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>

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

23889872c2e8594e0f446a471a78ec4c 이는 매우 유용합니다. 데이터 쿼리를 수행할 때 데이터베이스에서 데이터를 검색하는 경우 작업을 용이하게 하기 위해 개체로 캡슐화해야 하는 경우가 있습니다. 해결 방법: 개체 변환 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# 데이터 바인딩 제어 프로그램 code

<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 중국어 홈페이지(www.php.cn)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.