版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章數(shù)據(jù)綁定技術教學目標教學重點教學過程第1頁2023年2月1日第2頁教學目標通過本章的學習,應掌握常用Web控件的數(shù)據(jù)綁定方法第3頁教學重點掌握常用Web控件的數(shù)據(jù)綁定第4頁教學過程講解綁定到簡單數(shù)據(jù)源和復雜的數(shù)據(jù)源講解Web控件的數(shù)據(jù)綁定方法【隨堂演練】鞏固學習成果所謂數(shù)據(jù)綁定(databinding),就是把數(shù)據(jù)源中的數(shù)據(jù)提取出來,顯示在窗體的各種控件上。用戶可以通過這些控件查看和修改數(shù)據(jù),這些修改會自動保存到數(shù)據(jù)源中DataBind包括三大方法,Repeater,DataList和DataGrid,這些控件都位于System.Web.UI.WebControls
命名空間中,從WebControl
基類中直接或間接派生出來的。這些方法都是通過HTML來顯示數(shù)據(jù)的內容。58.1概述在Windows窗體中有兩種數(shù)據(jù)綁定類型:簡單綁定和復雜綁定。簡單綁定是將一個用戶界面元素(控件)的屬性綁定到一個類型(對象)實例上的某個屬性的方法。例如,如果一個開發(fā)者有一個Customer類型的實例,那么他就可以把Customer的“Name”屬性綁定到一個TextBox的“Text”屬性上?!敖壎ā绷诉@2個屬性之后,對TextBox的Text屬性的更改將“傳播”到Customer的Name屬性,而對Customer的Name屬性的更改同樣會“傳播”到TextBox的Text屬性。Windows窗體的簡單數(shù)據(jù)綁定支持綁定到任何public或者internal級別的.NETFramework屬性。復雜數(shù)據(jù)綁定是把一個基于列表的用戶界面元素(比如ComboBox、Grid)綁定到一個數(shù)據(jù)實例列表(比如DataTable)的方法。和簡單數(shù)據(jù)綁定一樣,復雜數(shù)據(jù)綁定通常也是用戶界面元素發(fā)生改變時傳播到數(shù)據(jù)列表,數(shù)據(jù)列表發(fā)生改變時傳播到用戶界面元素。Windows窗體復雜數(shù)據(jù)綁定支持綁定到那些支持IList接口(或者是IEnumerable接口,如果使用的是BindingSource組件的話)的數(shù)據(jù)列表。68.1概述所有的DataBind都應該用DataBind()函數(shù)來建立數(shù)據(jù)綁定,是整個頁面PAGE和所有控件的一個方法,也就是說,他可以被所有的控件使用,你建立數(shù)據(jù)綁定的時候,DataBind可以作為控件的一個子項,比如DataList1.DataBind(),再比如Page.DataBind(),會綁定整個頁面。DataBind
常在頁面載入時就被綁定。Page.DataBind
或Control.DataBind
方法使用方式很相似。主要差別在于:調用Page.DataBind
方法后,所有數(shù)據(jù)源都將綁定到它們的服務器控件。在顯式調用Web服務器控件的DataBind
方法或在調用頁面級的Page.DataBind
方法之前,不會有任何數(shù)據(jù)呈現(xiàn)給控件。通常,可以從Page_Load
事件調用Page.DataBind(或DataBind)。78.1概述Web控件綁定到數(shù)據(jù)源語法:
<%#DataSource%>說明:<%#%>
內聯(lián)標記用于指示將把特定數(shù)據(jù)源中的信息放在.aspx
頁中的什么位置。以下數(shù)據(jù)綁定示例使用TextBoxWeb服務器控件<asp:textboxid=txttext=“<%#custID%>"runat=server/>DataSource可以是變量、表達式、屬性、列表、數(shù)據(jù)集、視圖等調用控件的DataBind()實現(xiàn)綁定,如:
voidPage_Load(objectsender,EventArgse)
{Page.DataBind();//Page對象的DataBind方法}DataBind()方法通常是在數(shù)據(jù)源中數(shù)據(jù)更新后調用,用于同步數(shù)據(jù)源和數(shù)據(jù)控件中的數(shù)據(jù),使得數(shù)據(jù)源中的任何更改都可以在數(shù)據(jù)控件中反映出來。88.1概述簡單的數(shù)據(jù)源包括變量、表達式、集合、屬性等綁定到變量基本語法:<%#簡單變量%>綁定到表達式基本語法:<%#表達式
%>綁定到集合基本語法:<%#簡單集合%>數(shù)據(jù)源是集合的如數(shù)組、DataTable對象等。綁定到方法的結果基本語法:<%#方法([參數(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ù)源綁定到表達式:<%#表達式%>(前臺代碼:/8.2/8.2.2/Default.aspx)<formid="form1"runat="server">
<%#number%>+20=<%#number+20%></form>(后臺代碼:/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ù)源是一個集合,如數(shù)組、DataTable對象等,那么需要把這些數(shù)據(jù)綁定到支持多值綁定的Web控件上。(前臺代碼:/8.2/8.2.3/Default.aspx)<formid="form1"runat="server"><asp:DataGridID="myDG"
DataSource=<%#myData%>runat=server/></form>128.2綁定到簡單的數(shù)據(jù)源綁定到集合:<%#簡單集合%>(后臺代碼:/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ù)源綁定到方法的結果:<%#方法([參數(shù)])%>很多情況下,在控件顯示數(shù)據(jù)之前需要經(jīng)過復雜的處理和加工。通過定義方法先對數(shù)據(jù)進行復雜的處理,然后把控件綁定到返回處理結果的方法,就可以了。(前臺代碼:/8.2/8.2.4/Default.aspx)<formid="form1"runat="server"><asp:DataListID="myList"runat=server><ItemTemplate>數(shù)字:<%#Container.DataItem%>
//DataList的資料容器永遠都是Container.DataItem
正負:<%#IsPositiveOrNegative((int)Container.DataItem)%></ItemTemplate></asp:DataList></form>148.2綁定到簡單的數(shù)據(jù)源綁定到方法的結果:<%#方法([參數(shù)])%>(后臺代碼:/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"負數(shù)";else return"零";}158.2綁定到簡單的數(shù)據(jù)源復雜的數(shù)據(jù)源有DataView、DataSet和各種數(shù)據(jù)庫等綁定到DataView綁定到DataSet:綁定到DataSet對象的數(shù)據(jù)源可以是數(shù)據(jù)庫、XML文檔、界面輸入等。綁定到數(shù)據(jù)庫:首先創(chuàng)建連接到數(shù)據(jù)庫的Connection對象和執(zhí)行SQL語句的Command對象,然后執(zhí)行Command對象的ExecuteReader方法,并把控件綁定到ExecuteReader方法返回的結果。168.3綁定到復雜的數(shù)據(jù)源綁定到DataView:DataView對象表示對Dataset中的數(shù)據(jù)表的一種查看方式。系統(tǒng)默認的方式是將數(shù)據(jù)以表格的形式排列,并且數(shù)據(jù)是根據(jù)從數(shù)據(jù)表中讀取數(shù)據(jù)時行排列的順序排列的。DataView可以實現(xiàn)對DataTable的可綁定數(shù)據(jù)的自定義視圖,使其具有排序、過濾、搜索、編輯和導航的功能。(前臺代碼:/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綁定到復雜的數(shù)據(jù)源綁定到DataView:(后臺代碼:/8.3/8.3.1/Default1.aspx.cs)DataTable
dt=newDataTable();DataRow
dr;dt.Columns.Add(new
DataColumn("列號",typeof(Int32)));dt.Columns.Add(new
DataColumn("項目",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綁定到復雜的數(shù)據(jù)源綁定到DataSet:綁定到DataSet對象的數(shù)據(jù)源可以是數(shù)據(jù)庫、XML文檔、界面輸入等。(前臺代碼:/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綁定到復雜的數(shù)據(jù)源綁定到DataSet::(后臺代碼:/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綁定到復雜的數(shù)據(jù)源綁定到數(shù)據(jù)庫:首先創(chuàng)建連接到數(shù)據(jù)庫的Connection對象和執(zhí)行SQL語句的Command對象,然后執(zhí)行Command對象的ExecuteReader方法,并把控件綁定到ExecuteReader方法返回的結果。(前臺代碼:/8.3/8.3.3/Default.aspx)<formid="form1"runat="server"><asp:ListBoxID="myList"runat="server"BackColor="#cccccc"></asp:ListBox></form>218.3綁定到復雜的數(shù)據(jù)源綁定到數(shù)據(jù)庫::(后臺代碼:/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綁定到復雜的數(shù)據(jù)源4個可實現(xiàn)多值顯示的控件下拉列表框:DropDownList列表框:ListBox復選控件:CheckBoxList單選控件:RadioButtonList上述控件顯示ADO.NET中數(shù)據(jù)步驟將用于與數(shù)據(jù)相關的Web控件的添加到ASP.NET頁面中將ADO.NET的DataReader、DataSet或者是DataTable對象賦給控件的DataSource屬性執(zhí)行控件的DataBind()方法238.4常用控件的數(shù)據(jù)綁定下拉列表框:DropDownListDropDownList控件實際上是列表項的容器,這些列表項都屬于ListItems類型。因此在編程中處理列表項時,可以使用Items集合。當將數(shù)據(jù)源綁定在DropDownList控件上,在下拉列表框事件被觸發(fā)時,數(shù)據(jù)在DropDownList的下拉框中顯示出來。(前臺代碼:/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ù)綁定(后臺代碼:/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控件允許用戶從預定義列表中選擇一項或多項。它與DropDownList控件類似,不同之處在于它可允許用戶一次選擇多項。ListBox控件的數(shù)據(jù)綁定與DropDownList控件一樣,都是通過將數(shù)據(jù)源賦給DataSource屬性,然后再執(zhí)行DataBind()方法。
myListBox.DataSource=myArrayList;
myListBox.DataBind();
268.4常用控件的數(shù)據(jù)綁定復選控件:CheckBoxList(前臺代碼:/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ù)綁定(后臺代碼:/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ù)服務器控件DataGrid控件:以表格的形式顯示數(shù)據(jù),通過編輯DataGrid控件的屬性可以實現(xiàn)對其中顯示的數(shù)據(jù)進行選擇、編輯、更新及添加排序、分頁等。datagrid的行其實是datagriditem對象,而列就是datagridcolumn
對象。在datagrid對象的屬性集了我們可以看到items和columns屬性,它們分別就是datagrid的行集和列集,也就是datagriditem對象集合及datagridcolumn
對象集合。DataGrid數(shù)據(jù)綁定的步驟:創(chuàng)建數(shù)據(jù)庫連接,并把從數(shù)據(jù)庫中取出的數(shù)據(jù)存放到DataSet對象中設置DataGrid控件的DataSource屬性為該DataSet調用DataGrid控件的DataBind方法318.5數(shù)據(jù)服務器控件328.5datagrid控件DataGrid控件:打開2005里的工具箱->在工具箱中右擊->選中"選擇項..."
這是就會出現(xiàn)一個框
你可以在.net
framework組件中選擇DataGrid項
命名空間是System.web.ui.webControls
然后確定就可以在DataGrid控件中創(chuàng)建列:因為datagrid是以列的形式來呈現(xiàn)(表現(xiàn))數(shù)據(jù)的,一般情況下我們在聲明一個datagrid的時候,就指定了datagrid要顯示的列,所以datagrid的創(chuàng)建工作就只是創(chuàng)建行的工作了。也可以通過使用“屬性生成器”向控件中添加列。338.5數(shù)據(jù)服務器控件在DataGrid控件中的記錄進行分頁
stringstrConn="server=(local);database=NorthWind;uid=sa;pwd=123";
SqlConnection
Conn=newSqlConnection(strC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 洛陽理工學院《VB語言程序設計》2023-2024學年第一學期期末試卷
- 單位人事管理制度范文選集
- 單位人力資源管理制度集粹選集
- 飲料生產(chǎn)降水施工合同
- 高端別墅區(qū)房屋轉讓租賃協(xié)議
- 2024年標準餐飲服務合同模板版
- 商務寫字樓外墻改造合同
- 造紙工程分包協(xié)議
- 礦區(qū)生態(tài)恢復復墾承諾書
- 瑜伽館門頭施工合同
- 第2課+古代希臘羅馬【中職專用】《世界歷史》(高教版2023基礎模塊)
- 金屬屋面工程防水技術規(guī)程
- 《福建省安全生產(chǎn)條例》考試復習題庫45題(含答案)
- 人工智能增強戰(zhàn)略規(guī)劃
- 無機材料與功能化學
- 110kV變電站及110kV輸電線路運維投標技術方案(第一部分)
- 消防設施安全檢查表
- 餐廳用電安全承諾書
- 吉林省延邊州2023-2024學年高一上學期期末學業(yè)質量檢測數(shù)學試題(解析版)
- 2024年全國兩會精神主要內容
- 小學六年級數(shù)學上冊應用題100道(全)-及答案
評論
0/150
提交評論