課件章數(shù)據(jù)綁定_第1頁
課件章數(shù)據(jù)綁定_第2頁
課件章數(shù)據(jù)綁定_第3頁
課件章數(shù)據(jù)綁定_第4頁
課件章數(shù)據(jù)綁定_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1第8章數(shù)據(jù)綁定2本章要點:熟練掌握ListControl類控件與數(shù)據(jù)源的綁定熟練掌握GridView控件與數(shù)據(jù)源的綁定熟練掌握DetailsView控件與數(shù)據(jù)源的綁定3目錄8.1數(shù)據(jù)綁定概述8.2ListControl類控件8.3GridView控件8.3.1分頁和排序8.3.2定制數(shù)據(jù)綁定列8.3.3使用模板列8.3.4利用GridView編輯、刪除數(shù)據(jù)8.3.5顯示主從表8.4DetailsView控件8.5小結(jié)48.1數(shù)據(jù)綁定概述層次數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件58.1數(shù)據(jù)綁定概述(續(xù))數(shù)據(jù)源控件實現(xiàn)了數(shù)據(jù)訪問,要把訪問到的數(shù)據(jù)顯示出來,就需要數(shù)據(jù)綁定控件。數(shù)據(jù)綁定控件若與數(shù)據(jù)源控件結(jié)合顯示數(shù)據(jù),則需設(shè)置屬性DataSourceID值為數(shù)據(jù)源控件的ID;68.2ListControl類控件與數(shù)據(jù)庫數(shù)據(jù)顯示有關(guān)的屬性主要包括:AppendDataBoundItem、DataSourceID、DataSource、DataTextField、DataValueField。AppendDataBoundItem用于將數(shù)據(jù)綁定項追加到靜態(tài)聲明的列表項上;DataTextField綁定的字段用于顯示列表項;DataValueField綁定的字段用于設(shè)置列表項的值。7DataTextField與DataValueFieldDataTextField用來作顯示內(nèi)容,通常為一張表的某個字段的內(nèi)容;

DataValueField用來放唯一性的字段值,一般是主鍵。

DataTextField是顯示出來的內(nèi)容,DataValueField是controlid.selectedvalue的值,一個表示要顯示的內(nèi)容,一個表示該顯示內(nèi)容對應(yīng)的值。8實例8-1DropDownList和SqlDataSource結(jié)合顯示數(shù)據(jù)在DropDownList中顯示MypetShop.mdf數(shù)據(jù)庫中Category表的Name字段值,而列表項的值對應(yīng)CategoryId字段值。910連接字符串名用于連接到數(shù)據(jù)庫的連接字符串在Web.Config文件中,連接字符串內(nèi)容為:118.3GridView控件用于顯示二維表格式的數(shù)據(jù),可以在不編寫任何代碼,僅設(shè)置屬性的情況下,實現(xiàn)數(shù)據(jù)綁定、分頁、排序、行選擇、更新、刪除等功能。128.3.1分頁和排序要實現(xiàn)分頁功能需要設(shè)置屬性AllowPaging值為True。分頁的效果可在屬性集合PagerSettings中設(shè)置,包括:用于分頁類型的屬性Mode、用于“第一頁”按鈕圖像URL的屬性FirstPageImageUrl等。要實現(xiàn)排序功能需要設(shè)置屬性AllowSorting值為True。13實例8-2對GridView中數(shù)據(jù)實現(xiàn)分頁和排序

本實例將根據(jù)用戶選擇的每頁顯示條數(shù)來顯示每頁的數(shù)據(jù),同時顯示當前的頁碼和總頁數(shù)。源程序:GridViewPageSort.aspx14程序說明頁面載入時,GridView根據(jù)設(shè)置的屬性顯示結(jié)果。當用戶選擇每頁顯示條數(shù)后。觸發(fā)下拉框控件的SelectedIndexChanged事件,設(shè)置GridView的屬性PageSize,再重新綁定數(shù)據(jù)。GridView的RowDataBound事件在對行進行數(shù)據(jù)綁定后被觸發(fā),因此,當改變當前頁或改變每頁顯示條數(shù)時會觸發(fā)該事件。此時,獲取GridView的屬性PageIndex值即當前頁碼,但要注意PageIndex的編號從0開始;獲取屬性PageCount值即為總頁數(shù)。15168.3.2定制數(shù)據(jù)綁定列為開發(fā)人員提供了靈活的列定制功能,如增加復(fù)選框列、顯示圖像列等。需要設(shè)置屬性AutoGenerateColumns值為false。實際上,GridView中的每一列都是一個DataControlField類,并從該類派生出不同類型的子類。17GridView中不同類型的數(shù)據(jù)綁定列對應(yīng)表類型說明BoundField用于顯示普通文本內(nèi)容。屬性DataField設(shè)置綁定的數(shù)據(jù)列名稱;屬性HeaderText設(shè)置表頭的列名稱,如用于將原來為英文的字段名轉(zhuǎn)換為中文顯示。CheckBoxField用于顯示布爾類型數(shù)據(jù)。CommandField用于創(chuàng)建命令按鈕列。屬性ShowEditButton、ShowDeleteButton、ShowCancelButton和ShowSelectButton設(shè)置是否顯示對應(yīng)類型的按鈕。18GridView中不同類型的數(shù)據(jù)綁定列對應(yīng)表(續(xù))

ImageField用于顯示圖片列。屬性DataImageUrlField設(shè)置要綁定圖片路徑的數(shù)據(jù)列;屬性DataImageUrlFormatString設(shè)置圖片列中每個圖像的URL的格式。HyperLinkField用于顯示超鏈接列。屬性DataTextField綁定的數(shù)據(jù)列將顯示為超鏈接的文字;屬性DataNavigateUrlFields綁定的數(shù)據(jù)列將作為超鏈接的URL地址。ButtonField定義按鈕列,與CommandField列不同的是:ButtonField所定義的按鈕與GridView沒有直接關(guān)系,可以自定義相應(yīng)的操作。TemplateField以模板的形式自定義數(shù)據(jù)列。19實例8-3自定義GridView數(shù)據(jù)綁定列GridView呈現(xiàn)Product表的部分數(shù)據(jù),其中表頭信息以中文表示,顯示圖片的列為ImageField列。源程序:GridViewBound.aspx20程序說明本示例使用的Product表的字段Image存儲了對應(yīng)圖片的路徑,此時要在GridView中顯示圖片,只需設(shè)置ImageField列的屬性DataImageUrlField值為字段名Image,但若在存儲時僅存儲圖片的文件名,則還需配合使用DataImageUrlFormatString。例如,假設(shè)圖片統(tǒng)一存放在網(wǎng)站根文件夾下的img文件夾中,字段Image存儲圖片的文件名,則設(shè)置如下:<asp:ImageFieldDataImageUrlField="Image"HeaderText="圖片"DataImageUrlFormatString="~\img\{0}"></asp:ImageField>21228.3.3使用模板列23TemplateField中不同類型的模板對應(yīng)表模板說明AlternatingItemTemplate為交替項指定要顯示的內(nèi)容EditItemTemplate為處于編輯的項指定要顯示的內(nèi)容EmptyDataTemplate為空數(shù)據(jù)項指定要顯示的內(nèi)容FooterTemplate為腳注項指定要顯示的內(nèi)容HeaderTemplate為標題項指定要顯示的內(nèi)容ItemTemplate為TemplateField列指定要顯示的內(nèi)容PagerTemplate為頁碼項指定要顯示的內(nèi)容248.3.3使用模板列(續(xù))AlternatingItemTemplate需與ItemTemplate配合使用。若未設(shè)置AlternatingItemTemplate,則GridView的所有數(shù)據(jù)行都以ItemTemplate顯示;若已設(shè)置AlternatingItemTemplate,則GridView中的奇數(shù)數(shù)據(jù)行以ItemTemplate顯示,偶數(shù)數(shù)據(jù)行以AlternatingItemTemplate顯示。25數(shù)據(jù)綁定方法需要包含在<%#%>中。Eval():用于單向(只讀)綁定。Bind():用于雙向(可更新)綁定。26實例8-4使用模板列復(fù)選框列和CategoryID列為模板列。源程序:GridViewTemplate.aspx程序說明:在模板列中不能直接訪問各模板中的控件,若要訪問這些控件,一般可使用方法FindControl()在GridView控件的GridViewRow對象中查找。2728298.3.4利用GridView編輯、刪除數(shù)據(jù)“啟用編輯”和“啟用刪除”,可提供編輯和刪除數(shù)據(jù)功能。綁定至GridView的數(shù)據(jù)源控件也要提供更新、刪除功能。通過添加JavaScript代碼可給出刪除提示信息。30實例8-5為GridView中刪除按鈕添加客戶端提示信息

當用戶單擊刪除按鈕試圖刪除某行數(shù)據(jù)時系統(tǒng)將給出提示信息讓用戶確認。源程序:GridViewDelete.aspx程序說明:表的主鍵不能被編輯,GridView的屬性DataKeyNames包含了表的主鍵信息。3132程序說明(續(xù))GridView的RowDataBound事件在數(shù)據(jù)被分別綁定到行時觸發(fā)。由于單擊編輯按鈕后,刪除按鈕將不存在,此時就不能獲取刪除按鈕對象,所以通過使用try…catch結(jié)構(gòu)使得用戶單擊編輯按鈕時將不執(zhí)行任何操作(catch塊為空)。事件代碼中的e.Row能獲取所在行,Cells集合對應(yīng)指定行中所有單元格,Controls集合對應(yīng)指定單元格中所有控件。RowType用于確定GridView中行的類型,值包括DataRow(數(shù)據(jù)行)、Footer(腳注行)、Header(標題行)、EmptyDataRow(空行)、Pager(導(dǎo)航行)和Separator(分隔符行)。

338.3.5顯示主從表需要顯示主從表的情形常與數(shù)據(jù)庫中的“一對多”聯(lián)系對應(yīng),如一種分類有多種產(chǎn)品,一個供應(yīng)商供應(yīng)多種產(chǎn)品等。要顯示多張表就涉及表的同步問題。34實例8-6在同一頁顯示主從表當單擊“選擇”時,從表中將顯示主表中不同分類包含的產(chǎn)品。源代碼:GridViewSub.aspx程序說明:當單擊選擇按鈕時,GridView1.SelectedValue返回選擇行所對應(yīng)的主鍵CategoryID值,再將該值傳遞給SqlDataSource2中查詢語句的參數(shù)@CategoryID。3536實例8-7在不同頁顯示主從表當單擊CategoryID列中的鏈接時,在另一個網(wǎng)頁顯示該分類包含的產(chǎn)品。源程序:GridViewSubDiff1.aspx源程序:GridViewSubDiff2.aspx3738程序說明HyperLinkField列的屬性DataNavigateUrlFields值對應(yīng)頁面顯示時到超鏈接的NavigateUrl屬性;DataNavigateUrlFormatString值確定目標URL的格式,其中{0}在網(wǎng)頁瀏覽時會被DataNavigateUrlFields對應(yīng)的字段值代替;DateTextField值對應(yīng)頁面顯示時到超鏈接的Text屬性。當單擊主表網(wǎng)頁中的鏈接時,相應(yīng)的查詢字符串傳遞到從表網(wǎng)頁,再獲取其中的CategoryID值賦給where表達式的參數(shù)@CategoryID。39主表GridView40從表SqlDataSource的Where條件設(shè)置418.4DetailsView控件以表格形式顯示和處理來自數(shù)據(jù)源的單條記錄,其表格只包含兩個數(shù)據(jù)列。一個數(shù)據(jù)列逐行顯示數(shù)據(jù)列名,另一個數(shù)據(jù)列顯示對應(yīng)列名相關(guān)的數(shù)據(jù)值。DetailsView增加了數(shù)據(jù)插入的功能。42實例8-8結(jié)合GridView和DetailsView管理數(shù)據(jù)

當單擊GridView中“詳細資料”后在DetailsView中顯示該記錄的詳細信息。然后在Deta

溫馨提示

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

最新文檔

評論

0/150

提交評論