




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章數(shù)據(jù)綁定技術(shù)教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過(guò)程第1頁(yè)2023年2月1日第2頁(yè)教學(xué)目標(biāo)通過(guò)本章的學(xué)習(xí),應(yīng)掌握常用Web控件的數(shù)據(jù)綁定方法第3頁(yè)教學(xué)重點(diǎn)掌握常用Web控件的數(shù)據(jù)綁定第4頁(yè)教學(xué)過(guò)程講解綁定到簡(jiǎn)單數(shù)據(jù)源和復(fù)雜的數(shù)據(jù)源講解Web控件的數(shù)據(jù)綁定方法【隨堂演練】鞏固學(xué)習(xí)成果所謂數(shù)據(jù)綁定(databinding),就是把數(shù)據(jù)源中的數(shù)據(jù)提取出來(lái),顯示在窗體的各種控件上。用戶(hù)可以通過(guò)這些控件查看和修改數(shù)據(jù),這些修改會(huì)自動(dòng)保存到數(shù)據(jù)源中DataBind包括三大方法,Repeater,DataList和DataGrid,這些控件都位于System.Web.UI.WebControls
命名空間中,從WebControl
基類(lèi)中直接或間接派生出來(lái)的。這些方法都是通過(guò)HTML來(lái)顯示數(shù)據(jù)的內(nèi)容。58.1概述在Windows窗體中有兩種數(shù)據(jù)綁定類(lèi)型:簡(jiǎn)單綁定和復(fù)雜綁定。簡(jiǎn)單綁定是將一個(gè)用戶(hù)界面元素(控件)的屬性綁定到一個(gè)類(lèi)型(對(duì)象)實(shí)例上的某個(gè)屬性的方法。例如,如果一個(gè)開(kāi)發(fā)者有一個(gè)Customer類(lèi)型的實(shí)例,那么他就可以把Customer的“Name”屬性綁定到一個(gè)TextBox的“Text”屬性上。“綁定”了這2個(gè)屬性之后,對(duì)TextBox的Text屬性的更改將“傳播”到Customer的Name屬性,而對(duì)Customer的Name屬性的更改同樣會(huì)“傳播”到TextBox的Text屬性。Windows窗體的簡(jiǎn)單數(shù)據(jù)綁定支持綁定到任何public或者internal級(jí)別的.NETFramework屬性。復(fù)雜數(shù)據(jù)綁定是把一個(gè)基于列表的用戶(hù)界面元素(比如ComboBox、Grid)綁定到一個(gè)數(shù)據(jù)實(shí)例列表(比如DataTable)的方法。和簡(jiǎn)單數(shù)據(jù)綁定一樣,復(fù)雜數(shù)據(jù)綁定通常也是用戶(hù)界面元素發(fā)生改變時(shí)傳播到數(shù)據(jù)列表,數(shù)據(jù)列表發(fā)生改變時(shí)傳播到用戶(hù)界面元素。Windows窗體復(fù)雜數(shù)據(jù)綁定支持綁定到那些支持IList接口(或者是IEnumerable接口,如果使用的是BindingSource組件的話)的數(shù)據(jù)列表。68.1概述所有的DataBind都應(yīng)該用DataBind()函數(shù)來(lái)建立數(shù)據(jù)綁定,是整個(gè)頁(yè)面PAGE和所有控件的一個(gè)方法,也就是說(shuō),他可以被所有的控件使用,你建立數(shù)據(jù)綁定的時(shí)候,DataBind可以作為控件的一個(gè)子項(xiàng),比如DataList1.DataBind(),再比如Page.DataBind(),會(huì)綁定整個(gè)頁(yè)面。DataBind
常在頁(yè)面載入時(shí)就被綁定。Page.DataBind
或Control.DataBind
方法使用方式很相似。主要差別在于:調(diào)用Page.DataBind
方法后,所有數(shù)據(jù)源都將綁定到它們的服務(wù)器控件。在顯式調(diào)用Web服務(wù)器控件的DataBind
方法或在調(diào)用頁(yè)面級(jí)的Page.DataBind
方法之前,不會(huì)有任何數(shù)據(jù)呈現(xiàn)給控件。通常,可以從Page_Load
事件調(diào)用Page.DataBind(或DataBind)。78.1概述Web控件綁定到數(shù)據(jù)源語(yǔ)法:
<%#DataSource%>說(shuō)明:<%#%>
內(nèi)聯(lián)標(biāo)記用于指示將把特定數(shù)據(jù)源中的信息放在.aspx
頁(yè)中的什么位置。以下數(shù)據(jù)綁定示例使用TextBoxWeb服務(wù)器控件<asp:textboxid=txttext=“<%#custID%>"runat=server/>DataSource可以是變量、表達(dá)式、屬性、列表、數(shù)據(jù)集、視圖等調(diào)用控件的DataBind()實(shí)現(xiàn)綁定,如:
voidPage_Load(objectsender,EventArgse)
{Page.DataBind();//Page對(duì)象的DataBind方法}DataBind()方法通常是在數(shù)據(jù)源中數(shù)據(jù)更新后調(diào)用,用于同步數(shù)據(jù)源和數(shù)據(jù)控件中的數(shù)據(jù),使得數(shù)據(jù)源中的任何更改都可以在數(shù)據(jù)控件中反映出來(lái)。88.1概述簡(jiǎn)單的數(shù)據(jù)源包括變量、表達(dá)式、集合、屬性等綁定到變量基本語(yǔ)法:<%#簡(jiǎn)單變量%>綁定到表達(dá)式基本語(yǔ)法:<%#表達(dá)式
%>綁定到集合基本語(yǔ)法:<%#簡(jiǎn)單集合%>數(shù)據(jù)源是集合的如數(shù)組、DataTable對(duì)象等。綁定到方法的結(jié)果基本語(yǔ)法:<%#方法([參數(shù)])%>98.2綁定到簡(jiǎn)單的數(shù)據(jù)源綁定到變量:<%#簡(jiǎn)單變量%>(示例:/8.2/8.2.1/Default.aspx)<head> <scriptlanguage="c#"runat="server">strings_ID="10001";strings_name="Lucy";voidPage_Load(objectsender,EventArgse) {Page.DataBind();}
</script></head><body><formid="form1"runat="server"><b><%#s_ID%><br><%#s_name%></form></body>108.2綁定到簡(jiǎn)單的數(shù)據(jù)源綁定到表達(dá)式:<%#表達(dá)式%>(前臺(tái)代碼:/8.2/8.2.2/Default.aspx)<formid="form1"runat="server">
<%#number%>+20=<%#number+20%></form>(后臺(tái)代碼:/8.2/8.2.2/Default.aspx.cs)publicpartialclass_Default:System.Web.UI.Page
{
protectedintnumber=1000;
protectedvoidPage_Load(objectsender,EventArgse){
DataBind();}}118.2綁定到簡(jiǎn)單的數(shù)據(jù)源綁定到集合:<%#簡(jiǎn)單集合%>如果綁定的數(shù)據(jù)源是一個(gè)集合,如數(shù)組、DataTable對(duì)象等,那么需要把這些數(shù)據(jù)綁定到支持多值綁定的Web控件上。(前臺(tái)代碼:/8.2/8.2.3/Default.aspx)<formid="form1"runat="server"><asp:DataGridID="myDG"
DataSource=<%#myData%>runat=server/></form>128.2綁定到簡(jiǎn)單的數(shù)據(jù)源綁定到集合:<%#簡(jiǎn)單集合%>(后臺(tái)代碼:/8.2/8.2.3/Default.aspx.cs)publicpartialclass_Default:System.Web.UI.Page
{protectedArrayList
myData=newArrayList();protectedvoidPage_Load(objectsender,EventArgse){
myData.Add("蘋(píng)果");
myData.Add("香蕉");
myData.Add("桔子");
myData.Add("西瓜");
myDG.DataBind();
}}138.2綁定到簡(jiǎn)單的數(shù)據(jù)源綁定到方法的結(jié)果:<%#方法([參數(shù)])%>很多情況下,在控件顯示數(shù)據(jù)之前需要經(jīng)過(guò)復(fù)雜的處理和加工。通過(guò)定義方法先對(duì)數(shù)據(jù)進(jìn)行復(fù)雜的處理,然后把控件綁定到返回處理結(jié)果的方法,就可以了。(前臺(tái)代碼:/8.2/8.2.4/Default.aspx)<formid="form1"runat="server"><asp:DataListID="myList"runat=server><ItemTemplate>數(shù)字:<%#Container.DataItem%>
//DataList的資料容器永遠(yuǎn)都是Container.DataItem
正負(fù):<%#IsPositiveOrNegative((int)Container.DataItem)%></ItemTemplate></asp:DataList></form>148.2綁定到簡(jiǎn)單的數(shù)據(jù)源綁定到方法的結(jié)果:<%#方法([參數(shù)])%>(后臺(tái)代碼:/8.2/8.2.4/Default.aspx.cs)
protectedArrayList
myData=newArrayList();protectedvoidPage_Load(objectsender,EventArgse){myData.Add(-1);myData.Add(2);myData.Add(0);
myList.DataSource=myData;
myList.DataBind();}protectedstringIsPositiveOrNegative(intnumber){if(number>0) return"正數(shù)";elseif(number<0)return"負(fù)數(shù)";else return"零";}158.2綁定到簡(jiǎn)單的數(shù)據(jù)源復(fù)雜的數(shù)據(jù)源有DataView、DataSet和各種數(shù)據(jù)庫(kù)等綁定到DataView綁定到DataSet:綁定到DataSet對(duì)象的數(shù)據(jù)源可以是數(shù)據(jù)庫(kù)、XML文檔、界面輸入等。綁定到數(shù)據(jù)庫(kù):首先創(chuàng)建連接到數(shù)據(jù)庫(kù)的Connection對(duì)象和執(zhí)行SQL語(yǔ)句的Command對(duì)象,然后執(zhí)行Command對(duì)象的ExecuteReader方法,并把控件綁定到ExecuteReader方法返回的結(jié)果。168.3綁定到復(fù)雜的數(shù)據(jù)源綁定到DataView:DataView對(duì)象表示對(duì)Dataset中的數(shù)據(jù)表的一種查看方式。系統(tǒng)默認(rèn)的方式是將數(shù)據(jù)以表格的形式排列,并且數(shù)據(jù)是根據(jù)從數(shù)據(jù)表中讀取數(shù)據(jù)時(shí)行排列的順序排列的。DataView可以實(shí)現(xiàn)對(duì)DataTable的可綁定數(shù)據(jù)的自定義視圖,使其具有排序、過(guò)濾、搜索、編輯和導(dǎo)航的功能。(前臺(tái)代碼:/8.3/8.3.1/Default1.aspx)<formid="form1"runat="server"><asp:DataGrid
ID="DataGrid1"runat="server"HeaderStyle-BackColor="#aaaadd"></asp:DataGrid></form>178.3綁定到復(fù)雜的數(shù)據(jù)源綁定到DataView:(后臺(tái)代碼:/8.3/8.3.1/Default1.aspx.cs)DataTable
dt=newDataTable();DataRow
dr;dt.Columns.Add(new
DataColumn("列號(hào)",typeof(Int32)));dt.Columns.Add(new
DataColumn("項(xiàng)目",typeof(string)));dt.Columns.Add(new
DataColumn("日期",typeof(DateTime)));dt.Columns.Add(new
DataColumn("布爾值",typeof(bool)));for(inti=1;i<=9;i++){ dr=dt.NewRow(); dr[0]=i; dr[1]="Item"+i.ToString(); dr[2]=DateTime.Now; dr[3]=(i%2!=0)?true:false;
dt.Rows.Add(dr);}
DataGrid1.DataSource=newDataView(dt);
DataGrid1.DataBind();188.3綁定到復(fù)雜的數(shù)據(jù)源綁定到DataSet:綁定到DataSet對(duì)象的數(shù)據(jù)源可以是數(shù)據(jù)庫(kù)、XML文檔、界面輸入等。(前臺(tái)代碼:/8.3/8.3.2/Default.aspx)<formid="form1"runat="server"><asp:DataGrid
ID="myDG"runat="server"HeaderStyle-BackColor="#aaaadd"></asp:DataGrid></form>198.3綁定到復(fù)雜的數(shù)據(jù)源綁定到DataSet::(后臺(tái)代碼:/8.3/8.3.2/Default.aspx.cs)publicpartialclass_Default:System.Web.UI.Page
{privateDataSet
myDS=newDataSet();protectedvoidPage_Load(objectsender,EventArgse){ if(!Page.IsPostBack){stringstrSQL="select*fromstudent";stringconnStr="DataSource=localhost;UID=sa;Pwd=123; InitialCatalog=student";SqlConnection
Conn=newSqlConnection(connStr);SqlDataAdapter
myAdapter=newSqlDataAdapter(strSQL,Conn);Conn.Open();
myAdapter.Fill(myDS,"students");
myDG.DataSource=myDS;
myDG.DataBind();
Conn.Close();}}}208.3綁定到復(fù)雜的數(shù)據(jù)源綁定到數(shù)據(jù)庫(kù):首先創(chuàng)建連接到數(shù)據(jù)庫(kù)的Connection對(duì)象和執(zhí)行SQL語(yǔ)句的Command對(duì)象,然后執(zhí)行Command對(duì)象的ExecuteReader方法,并把控件綁定到ExecuteReader方法返回的結(jié)果。(前臺(tái)代碼:/8.3/8.3.3/Default.aspx)<formid="form1"runat="server"><asp:ListBoxID="myList"runat="server"BackColor="#cccccc"></asp:ListBox></form>218.3綁定到復(fù)雜的數(shù)據(jù)源綁定到數(shù)據(jù)庫(kù)::(后臺(tái)代碼:/8.3/8.3.3/Default.aspx.cs) stringstrConn="DataSource=localhost;
Uid=sa;Pwd=123;InitialCatalog=student";
SqlConnection
Conn=newSqlConnection(strConn);stringstrSQL="selects_ID,s_namefromstudent";
Conn.Open();
SqlCommand
Comm=newSqlCommand(strSQL,Conn);
myList.DataSource=Comm.ExecuteReader();
myList.DataTextField="s_ID";
myList.DataValueField="s_name";
myList.DataBind();
Conn.Close();228.3綁定到復(fù)雜的數(shù)據(jù)源4個(gè)可實(shí)現(xiàn)多值顯示的控件下拉列表框:DropDownList列表框:ListBox復(fù)選控件:CheckBoxList單選控件:RadioButtonList上述控件顯示ADO.NET中數(shù)據(jù)步驟將用于與數(shù)據(jù)相關(guān)的Web控件的添加到ASP.NET頁(yè)面中將ADO.NET的DataReader、DataSet或者是DataTable對(duì)象賦給控件的DataSource屬性執(zhí)行控件的DataBind()方法238.4常用控件的數(shù)據(jù)綁定下拉列表框:DropDownListDropDownList控件實(shí)際上是列表項(xiàng)的容器,這些列表項(xiàng)都屬于ListItems類(lèi)型。因此在編程中處理列表項(xiàng)時(shí),可以使用Items集合。當(dāng)將數(shù)據(jù)源綁定在DropDownList控件上,在下拉列表框事件被觸發(fā)時(shí),數(shù)據(jù)在DropDownList的下拉框中顯示出來(lái)。(前臺(tái)代碼:/8.4/8.4.1/Default.aspx)<asp:DropDownListID="myDDL"runat="server"AutoPostBack="True"Width="166px"OnSelectedIndexChanged="myDDL_SelectedIndexChanged"></asp:DropDownList>248.4常用控件的數(shù)據(jù)綁定(后臺(tái)代碼:/8.4/8.4.1/Default.aspx.cs)protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){ArrayList
colorList=newArrayList();
colorList.Add("Yellow");
colorList.Add("Blue");
colorList.Add("Pink");
colorList.Add("Green");
myDDL.DataSource=colorList;
myDDL.DataBind();}}protectedvoidmyDDL_SelectedIndexChanged(objectsender,EventArgse){Response.Write("<bodybgcolor="+myDDL.SelectedValue+">");}258.4常用控件的數(shù)據(jù)綁定列表框:ListBoxListBox控件允許用戶(hù)從預(yù)定義列表中選擇一項(xiàng)或多項(xiàng)。它與DropDownList控件類(lèi)似,不同之處在于它可允許用戶(hù)一次選擇多項(xiàng)。ListBox控件的數(shù)據(jù)綁定與DropDownList控件一樣,都是通過(guò)將數(shù)據(jù)源賦給DataSource屬性,然后再執(zhí)行DataBind()方法。
myListBox.DataSource=myArrayList;
myListBox.DataBind();
268.4常用控件的數(shù)據(jù)綁定復(fù)選控件:CheckBoxList(前臺(tái)代碼:/8.4/8.4.3/Default.aspx.cs)
<formid="form1"runat="server"><asp:CheckBoxListID="ckbEmployees"runat="server"AutoPostBack="True"OnSelectedIndexChanged="ckbEmployees_SelectedIndexChanged"></asp:CheckBoxList><hr/><asp:DataGridID="dgEmployee"
runat=server></asp:DataGrid></form>278.4常用控件的數(shù)據(jù)綁定(后臺(tái)代碼:/8.4/8.4.3/Default.aspx.cs)//從數(shù)據(jù)庫(kù)中獲取雇員的名稱(chēng)和ID并綁定到CheckBoxList中stringstrconn="server=(local);database=NorthWind;uid=sa;pwd=123";stringstrSql="SELECTLastName,EmployeeIDFROMEmployeesORDERBYLastName";
SqlConnection
objconn=newSqlConnection(strconn);
SqlCommand
objcmd=newSqlCommand(strSql,objconn);
objconn.Open();
ckbEmployees.DataSource=objcmd.ExecuteReader();
ckbEmployees.DataTextField="LastName";
ckbEmployees.DataValueField="EmployeeID";
ckbEmployees.DataBind();
objconn.Close();}288.4常用控件的數(shù)據(jù)綁定單選控件:RadioButtonListRadioButtonList控件的數(shù)據(jù)綁定與CheckBoxList控件類(lèi)似,都是通過(guò)將數(shù)據(jù)源賦給DataSource屬性,然后再執(zhí)行DataBind()方法。
RadioButtonList.DataSource=myArrayList;
RadioButtonList.DataBind();
298.4常用控件的數(shù)據(jù)綁定ASP.NET中常用的包括DataGrid控件DataList控件ReapterGridView控件308.5數(shù)據(jù)服務(wù)器控件DataGrid控件:以表格的形式顯示數(shù)據(jù),通過(guò)編輯DataGrid控件的屬性可以實(shí)現(xiàn)對(duì)其中顯示的數(shù)據(jù)進(jìn)行選擇、編輯、更新及添加排序、分頁(yè)等。datagrid的行其實(shí)是datagriditem對(duì)象,而列就是datagridcolumn
對(duì)象。在datagrid對(duì)象的屬性集了我們可以看到items和columns屬性,它們分別就是datagrid的行集和列集,也就是datagriditem對(duì)象集合及datagridcolumn
對(duì)象集合。DataGrid數(shù)據(jù)綁定的步驟:創(chuàng)建數(shù)據(jù)庫(kù)連接,并把從數(shù)據(jù)庫(kù)中取出的數(shù)據(jù)存放到DataSet對(duì)象中設(shè)置DataGrid控件的DataSource屬性為該DataSet調(diào)用DataGrid控件的DataBind方法318.5數(shù)據(jù)服務(wù)器控件328.5datagrid控件DataGrid控件:打開(kāi)2005里的工具箱->在工具箱中右擊->選中"選擇項(xiàng)..."
這是就會(huì)出現(xiàn)一個(gè)框
你可以在.net
framework組件中選擇DataGrid項(xiàng)
命名空間是System.web.ui.webControls
然后確定就可以在DataGrid控件中創(chuàng)建列:因?yàn)閐atagrid是以列的形式來(lái)呈現(xiàn)(表現(xiàn))數(shù)據(jù)的,一般情況下我們?cè)诼暶饕粋€(gè)datagrid的時(shí)候,就指定了datagrid要顯示的列,所以datagrid的創(chuàng)建工作就只是創(chuàng)建行的工作了。也可以通過(guò)使用“屬性生成器”向控件中添加列。338.5數(shù)據(jù)服務(wù)器控件在DataGrid控件中的記錄進(jìn)行分頁(yè)
stringstrConn="server=(local);database=NorthWind;uid=sa;pwd=123";
SqlConnection
Conn=newSqlConnection(strC
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 機(jī)關(guān)包粽子比賽活動(dòng)方案
- 晚會(huì)線上活動(dòng)方案
- 服裝公司招商會(huì)策劃方案
- 生殖健康知識(shí)普及與教育
- 注冊(cè)稅務(wù)師2021課件
- 山東個(gè)體餐飲復(fù)工方案
- 燃?xì)鈶?yīng)急搶險(xiǎn)評(píng)估方案
- 高校職務(wù)科技成果賦權(quán)改革的現(xiàn)狀與對(duì)策研究
- 2025至2030LPG產(chǎn)業(yè)行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 救援指揮體系建設(shè)方案
- 農(nóng)村小學(xué)生科技活動(dòng)方案
- 2025年健身與體育專(zhuān)業(yè)知識(shí)與實(shí)務(wù)考試試題及答案
- 中國(guó)大蒜及深加工行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- 2025年安全生產(chǎn)月知識(shí)測(cè)試試卷(附答案)
- 2025至2030中國(guó)雙酚TMC行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 加油站油品品質(zhì)管理制度
- 播音與主持專(zhuān)業(yè)教學(xué)標(biāo)準(zhǔn)(中等職業(yè)教育)2025修訂
- 2025年中國(guó)大米加工行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 2025年北京高考物理試卷真題(含答案解析)
- GB/T 45823-2025光伏單晶硅生長(zhǎng)用石英坩堝高純內(nèi)層砂
- 2025至2030中國(guó)建設(shè)工程質(zhì)量檢測(cè)產(chǎn)業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資報(bào)告
評(píng)論
0/150
提交評(píng)論