가끔 프로그래밍의 특정 단계에 접어들었고 더 이상 개선하기가 매우 어려울 때 돌아가서 기본 사항을 살펴보는 것이 좋을 수도 있습니다. 어쩌면 새로운 이점을 얻게 될 수도 있고, 무엇을 진정으로 이해할 수도 있을 것입니다. 공자는 “과거를 되돌아보고 새로운 것을 배우는 것”의 진정한 의미를 말했습니다.
일반적으로 사용되는 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)를 참고해주세요!