版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國人民大學(xué)《信息管理專業(yè)研究方法論與創(chuàng)新教育》2023-2024學(xué)年第一學(xué)期期末試卷
- 鄭州軟件職業(yè)技術(shù)學(xué)院《體育產(chǎn)品概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 小學(xué)2024年體育自評(píng)結(jié)果
- 浙江電力職業(yè)技術(shù)學(xué)院《生產(chǎn)運(yùn)作實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 長安大學(xué)興華學(xué)院《瑜伽基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 餐飲文化與創(chuàng)新模板
- 雙十一醫(yī)保新品發(fā)布
- 專業(yè)基礎(chǔ)-房地產(chǎn)經(jīng)紀(jì)人《專業(yè)基礎(chǔ)》模擬試卷5
- 三年級(jí)學(xué)習(xí)導(dǎo)向模板
- 氣候變遷與寒露模板
- 《新生兒預(yù)防接種》課件
- 小學(xué)五年級(jí)上冊(cè)數(shù)學(xué)寒假作業(yè)每日一練
- 監(jiān)控工程驗(yàn)收單-范本模板
- 子宮內(nèi)膜癌業(yè)務(wù)查房課件
- 社會(huì)學(xué)概論課件
- 華為經(jīng)營管理-華為的研發(fā)管理(6版)
- C及C++程序設(shè)計(jì)課件
- 公路路基路面現(xiàn)場測試隨機(jī)選點(diǎn)記錄
- 維克多高中英語3500詞匯
- 國家自然科學(xué)基金(NSFC)申請(qǐng)書樣本
- 湖南省省級(jí)溫室氣體排放清單土地利用變化和林業(yè)部分
評(píng)論
0/150
提交評(píng)論