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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論