第8章-數(shù)據(jù)綁定技術(shù)_第1頁
第8章-數(shù)據(jù)綁定技術(shù)_第2頁
第8章-數(shù)據(jù)綁定技術(shù)_第3頁
第8章-數(shù)據(jù)綁定技術(shù)_第4頁
第8章-數(shù)據(jù)綁定技術(shù)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第8章數(shù)據(jù)綁定技術(shù)教學(xué)目標(biāo)教學(xué)重點(diǎn)教學(xué)過程第1頁2023年2月1日第2頁教學(xué)目標(biāo)通過本章的學(xué)習(xí),應(yīng)掌握常用Web控件的數(shù)據(jù)綁定方法第3頁教學(xué)重點(diǎn)掌握常用Web控件的數(shù)據(jù)綁定第4頁教學(xué)過程講解綁定到簡單數(shù)據(jù)源和復(fù)雜的數(shù)據(jù)源講解Web控件的數(shù)據(jù)綁定方法【隨堂演練】鞏固學(xué)習(xí)成果所謂數(shù)據(jù)綁定(databinding),就是把數(shù)據(jù)源中的數(shù)據(jù)提取出來,顯示在窗體的各種控件上。用戶可以通過這些控件查看和修改數(shù)據(jù),這些修改會(huì)自動(dòng)保存到數(shù)據(jù)源中DataBind包括三大方法,Repeater,DataList和DataGrid,這些控件都位于System.Web.UI.WebControls

命名空間中,從WebControl

基類中直接或間接派生出來的。這些方法都是通過HTML來顯示數(shù)據(jù)的內(nèi)容。58.1概述在Windows窗體中有兩種數(shù)據(jù)綁定類型:簡單綁定和復(fù)雜綁定。簡單綁定是將一個(gè)用戶界面元素(控件)的屬性綁定到一個(gè)類型(對(duì)象)實(shí)例上的某個(gè)屬性的方法。例如,如果一個(gè)開發(fā)者有一個(gè)Customer類型的實(shí)例,那么他就可以把Customer的“Name”屬性綁定到一個(gè)TextBox的“Text”屬性上?!敖壎ā绷诉@2個(gè)屬性之后,對(duì)TextBox的Text屬性的更改將“傳播”到Customer的Name屬性,而對(duì)Customer的Name屬性的更改同樣會(huì)“傳播”到TextBox的Text屬性。Windows窗體的簡單數(shù)據(jù)綁定支持綁定到任何public或者internal級(jí)別的.NETFramework屬性。復(fù)雜數(shù)據(jù)綁定是把一個(gè)基于列表的用戶界面元素(比如ComboBox、Grid)綁定到一個(gè)數(shù)據(jù)實(shí)例列表(比如DataTable)的方法。和簡單數(shù)據(jù)綁定一樣,復(fù)雜數(shù)據(jù)綁定通常也是用戶界面元素發(fā)生改變時(shí)傳播到數(shù)據(jù)列表,數(shù)據(jù)列表發(fā)生改變時(shí)傳播到用戶界面元素。Windows窗體復(fù)雜數(shù)據(jù)綁定支持綁定到那些支持IList接口(或者是IEnumerable接口,如果使用的是BindingSource組件的話)的數(shù)據(jù)列表。68.1概述所有的DataBind都應(yīng)該用DataBind()函數(shù)來建立數(shù)據(jù)綁定,是整個(gè)頁面PAGE和所有控件的一個(gè)方法,也就是說,他可以被所有的控件使用,你建立數(shù)據(jù)綁定的時(shí)候,DataBind可以作為控件的一個(gè)子項(xiàng),比如DataList1.DataBind(),再比如Page.DataBind(),會(huì)綁定整個(gè)頁面。DataBind

常在頁面載入時(shí)就被綁定。Page.DataBind

或Control.DataBind

方法使用方式很相似。主要差別在于:調(diào)用Page.DataBind

方法后,所有數(shù)據(jù)源都將綁定到它們的服務(wù)器控件。在顯式調(diào)用Web服務(wù)器控件的DataBind

方法或在調(diào)用頁面級(jí)的Page.DataBind

方法之前,不會(huì)有任何數(shù)據(jù)呈現(xiàn)給控件。通常,可以從Page_Load

事件調(diào)用Page.DataBind(或DataBind)。78.1概述Web控件綁定到數(shù)據(jù)源語法:

<%#DataSource%>說明:<%#%>

內(nèi)聯(lián)標(biāo)記用于指示將把特定數(shù)據(jù)源中的信息放在.aspx

頁中的什么位置。以下數(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ù)控件中反映出來。88.1概述簡單的數(shù)據(jù)源包括變量、表達(dá)式、集合、屬性等綁定到變量基本語法:<%#簡單變量%>綁定到表達(dá)式基本語法:<%#表達(dá)式

%>綁定到集合基本語法:<%#簡單集合%>數(shù)據(jù)源是集合的如數(shù)組、DataTable對(duì)象等。綁定到方法的結(jié)果基本語法:<%#方法([參數(shù)])%>98.2綁定到簡單的數(shù)據(jù)源綁定到變量:<%#簡單變量%>(示例:/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綁定到簡單的數(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綁定到簡單的數(shù)據(jù)源綁定到集合:<%#簡單集合%>如果綁定的數(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綁定到簡單的數(shù)據(jù)源綁定到集合:<%#簡單集合%>(后臺(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("蘋果");

myData.Add("香蕉");

myData.Add("桔子");

myData.Add("西瓜");

myDG.DataBind();

}}138.2綁定到簡單的數(shù)據(jù)源綁定到方法的結(jié)果:<%#方法([參數(shù)])%>很多情況下,在控件顯示數(shù)據(jù)之前需要經(jīng)過復(fù)雜的處理和加工。通過定義方法先對(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綁定到簡單的數(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綁定到簡單的數(shù)據(jù)源復(fù)雜的數(shù)據(jù)源有DataView、DataSet和各種數(shù)據(jù)庫等綁定到DataView綁定到DataSet:綁定到DataSet對(duì)象的數(shù)據(jù)源可以是數(shù)據(jù)庫、XML文檔、界面輸入等。綁定到數(shù)據(jù)庫:首先創(chuàng)建連接到數(shù)據(jù)庫的Connection對(duì)象和執(zhí)行SQL語句的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ù)的自定義視圖,使其具有排序、過濾、搜索、編輯和導(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ù)庫、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ù)庫:首先創(chuàng)建連接到數(shù)據(jù)庫的Connection對(duì)象和執(zhí)行SQL語句的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ù)庫::(后臺(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頁面中將ADO.NET的DataReader、DataSet或者是DataTable對(duì)象賦給控件的DataSource屬性執(zhí)行控件的DataBind()方法238.4常用控件的數(shù)據(jù)綁定下拉列表框:DropDownListDropDownList控件實(shí)際上是列表項(xiàng)的容器,這些列表項(xiàng)都屬于ListItems類型。因此在編程中處理列表項(xiàng)時(shí),可以使用Items集合。當(dāng)將數(shù)據(jù)源綁定在DropDownList控件上,在下拉列表框事件被觸發(fā)時(shí),數(shù)據(jù)在DropDownList的下拉框中顯示出來。(前臺(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控件允許用戶從預(yù)定義列表中選擇一項(xiàng)或多項(xiàng)。它與DropDownList控件類似,不同之處在于它可允許用戶一次選擇多項(xiàng)。ListBox控件的數(shù)據(jù)綁定與DropDownList控件一樣,都是通過將數(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ù)庫中獲取雇員的名稱和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控件類似,都是通過將數(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ù),通過編輯DataGrid控件的屬性可以實(shí)現(xiàn)對(duì)其中顯示的數(shù)據(jù)進(jìn)行選擇、編輯、更新及添加排序、分頁等。datagrid的行其實(shí)是datagriditem對(duì)象,而列就是datagridcolumn

對(duì)象。在datagrid對(duì)象的屬性集了我們可以看到items和columns屬性,它們分別就是datagrid的行集和列集,也就是datagriditem對(duì)象集合及datagridcolumn

對(duì)象集合。DataGrid數(shù)據(jù)綁定的步驟:創(chuàng)建數(shù)據(jù)庫連接,并把從數(shù)據(jù)庫中取出的數(shù)據(jù)存放到DataSet對(duì)象中設(shè)置DataGrid控件的DataSource屬性為該DataSet調(diào)用DataGrid控件的DataBind方法318.5數(shù)據(jù)服務(wù)器控件328.5datagrid控件DataGrid控件:打開2005里的工具箱->在工具箱中右擊->選中"選擇項(xiàng)..."

這是就會(huì)出現(xiàn)一個(gè)框

你可以在.net

framework組件中選擇DataGrid項(xiàng)

命名空間是System.web.ui.webControls

然后確定就可以在DataGrid控件中創(chuàng)建列:因?yàn)閐atagrid是以列的形式來呈現(xiàn)(表現(xiàn))數(shù)據(jù)的,一般情況下我們?cè)诼暶饕粋€(gè)datagrid的時(shí)候,就指定了datagrid要顯示的列,所以datagrid的創(chuàng)建工作就只是創(chuàng)建行的工作了。也可以通過使用“屬性生成器”向控件中添加列。338.5數(shù)據(jù)服務(wù)器控件在DataGrid控件中的記錄進(jìn)行分頁

stringstrConn="server=(local);database=NorthWind;uid=sa;pwd=123";

SqlConnection

Conn=newSqlConnection(strC

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論