版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 GridView控件的高級(jí)應(yīng)用本章目標(biāo)qGridView控件中列的各種類(lèi)型理解q掌握數(shù)據(jù)綁定控件的代碼綁定操作q掌握GridView控件的模板列應(yīng)用q了解DetailsView控件q了解FormView控件q了解DataList控件q了解Repeater控件綁定列設(shè)置q不管是手動(dòng)綁定還是數(shù)據(jù)源控件綁定,都可以為每一列設(shè)置具體的列信息q設(shè)置呈現(xiàn)列名q設(shè)置數(shù)據(jù)源字段名q設(shè)置呈現(xiàn)格式q設(shè)置呈現(xiàn)樣式q命令列與超連接列qCommandFieldq一個(gè)特殊字段,顯示了用于在數(shù)據(jù)綁定控件中執(zhí)行選擇、編輯、插入、取消或刪除操作的命令按鈕 q自動(dòng)生成命令,無(wú)須手寫(xiě)q對(duì)應(yīng)數(shù)據(jù)源的增改查刪方法qHyperLink
2、Fieldq顯示為超鏈接的字段q比如鏈接到詳細(xì)頁(yè)面 設(shè)置鏈接的路徑格式設(shè)置鏈接的路徑格式設(shè)定綁定的參數(shù)集合設(shè)定綁定的參數(shù)集合按鈕列qButtonField字段q顯示為數(shù)據(jù)綁定控件中的按鈕 qCommandName設(shè)置自定義命令(RowCommand)圖片列與復(fù)選框列qImageField字段q為圖像的字段q綁定到包含圖像 URL 的數(shù)據(jù)源中的字段q指定DataImageUrlFieldqCheckBoxField字段q以復(fù)選框顯示的布爾型字段 q僅當(dāng)數(shù)據(jù)源字段中有布爾型字段時(shí)使用此字段模板列qTemplateField字段q綁定中顯示自定義內(nèi)容的字段q有五種模板(標(biāo)頭、腳注、普通項(xiàng)、交替項(xiàng)、編
3、輯模式) asp:TextBox ID=TextBox1 runat=server Text= asp:Label ID=Label1 runat=server Text= 綁定字段的方法,還可以使用綁定字段的方法,還可以使用Eval注意單引號(hào)的使用注意單引號(hào)的使用Eval和BindqEval 方法是只讀方法q該方法采用數(shù)據(jù)字段的值作為參數(shù)并將其作為字符串返回。q當(dāng)對(duì)表達(dá)式操作時(shí)候,必須用Eval 如q格式化qBind 方法支持讀/寫(xiě)功能q可以檢索數(shù)據(jù)綁定控件的值并將任何更改提交回?cái)?shù)據(jù)庫(kù)。d:日期;m:月份;y:年份。可能格式化為“17/05/2008”。 數(shù)據(jù)源綁定控件的手動(dòng)代碼綁定q上一章
4、講述數(shù)據(jù)源綁定時(shí)我們知道有一組控件有DataSource屬性,通過(guò)這個(gè)屬性可以為這些控件實(shí)現(xiàn)手動(dòng)數(shù)據(jù)源的綁定操作qDropDownList、ListBox、GridView等q可以作為數(shù)據(jù)源控件有:q DataTableq DataViewq Listq Arrayq ArrayListq 手動(dòng)綁定代碼q代碼this.控件名.DataSource = 數(shù)據(jù)源對(duì)象;this.控件名.DataBind();q注意點(diǎn)手動(dòng)綁定操作僅能為控件提供一個(gè)結(jié)果集作為其數(shù)據(jù)來(lái)源,但無(wú)法像SqlDataSource一樣進(jìn)行非常全面的操作(比如排序、分頁(yè)、編輯、刪除等操作)如果是GridView這種高級(jí)綁定控件時(shí)還
5、需設(shè)置控件DataKeyNames屬性,其作用是標(biāo)識(shí)數(shù)據(jù)源中的需隱藏字段信息q使用場(chǎng)合無(wú)法快速得到一個(gè)數(shù)據(jù)源對(duì)象的情況下,即我們的數(shù)據(jù)源必須通過(guò)復(fù)雜業(yè)務(wù)邏輯獲得等情況手動(dòng)綁定下的分頁(yè)與排序q如果是手動(dòng)數(shù)據(jù)源綁定則系統(tǒng)不會(huì)自動(dòng)生成分頁(yè)與排序的操作,必須手動(dòng)代碼完成q分頁(yè)操作q設(shè)置控件允許分頁(yè)q訂閱控件的PageIndexChanging事件q響應(yīng)代碼中進(jìn)行設(shè)置控件的當(dāng)前頁(yè)碼并重新加載數(shù)據(jù)q排序操作q設(shè)置控件允許排序q訂閱控件的Sorting事件q在事件響應(yīng)代碼中得到本次呈現(xiàn)數(shù)據(jù)時(shí)的OrderBy依賴信息,并利用此信息重新加載數(shù)據(jù)源手動(dòng)代碼下的編輯及刪除q同上操作相同,如果是手動(dòng)數(shù)據(jù)源綁定的話,G
6、ridView控件的編輯及刪除操作也需要通過(guò)代碼實(shí)現(xiàn)l 編輯按鈕:設(shè)置控件編輯行為當(dāng)前行下標(biāo)并重新加載數(shù)據(jù)l 更新按鈕:獲取用戶操作后的新數(shù)據(jù)形成更新語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)端提交并重新加載數(shù)據(jù)l 取消按鈕:設(shè)置控件編輯行為-1并重新加載數(shù)據(jù)l 刪除按鈕:提取當(dāng)前行標(biāo)識(shí)信息形成刪除語(yǔ)句并重新加載數(shù)據(jù)q注意:操作過(guò)程中對(duì)隱藏字段信息的獲取操作小結(jié)qGridView控件中列的七種狀態(tài)操作q手動(dòng)數(shù)據(jù)源綁定下的各種操作光棒效果protected void gvDemo_RowDataBound(object sender, GridViewRowEventArgs e) if (e.Row.RowType =
7、DataControlRowType.DataRow) e.Row.Attributes.Add(onmouseover, currentcolor=this.style.backgroundColor;this.style.bac kgroundColor=#6699ff); e.Row.Attributes.Add(onmouseout, this.style.backgroundColor=currentcolor); GridView數(shù)據(jù)數(shù)據(jù)行綁定事件行綁定事件判斷數(shù)據(jù)行類(lèi)型判斷數(shù)據(jù)行類(lèi)型當(dāng)鼠標(biāo)離開(kāi)時(shí)當(dāng)鼠標(biāo)離開(kāi)時(shí)數(shù)據(jù)行背景色還原數(shù)據(jù)行背景色還原 添加屬性(客戶端):添加屬性(客戶端):
8、當(dāng)鼠標(biāo)移過(guò)的時(shí),數(shù)據(jù)行背當(dāng)鼠標(biāo)移過(guò)的時(shí),數(shù)據(jù)行背景色變成藍(lán)色景色變成藍(lán)色 分頁(yè)下的多刪操作q實(shí)現(xiàn)效果:在某一頁(yè)面下選中某復(fù)框,換頁(yè)后之前的選中信息仍保留q實(shí)現(xiàn)步驟:為每一復(fù)選框訂閱客戶端點(diǎn)擊事件通過(guò)客戶端腳本記錄準(zhǔn)備操作數(shù)據(jù)行的標(biāo)識(shí)服務(wù)器腳本在呈現(xiàn)每一復(fù)選框時(shí)先進(jìn)行狀態(tài)判斷最后操作時(shí)僅需從特定記錄控件中得到待操作信息全選效果/ 設(shè)置全選或全不選設(shè)置全選或全不選 function setAll(chkAll) / 在在GuidView控件中找到所有的復(fù)選框控件中找到所有的復(fù)選框 var chks = window.document.getElementById(gvStudent).getEle
9、mentsByTagName(input); for(var i=0;ichks.length;i+) / 如果遍歷到的復(fù)選框是我需要的復(fù)選框再進(jìn)行后續(xù)操作如果遍歷到的復(fù)選框是我需要的復(fù)選框再進(jìn)行后續(xù)操作 if(chksi.id.indexOf(chkDel) != -1)/找到了找到了 if(chksi.checked != chkAll.checked) chksi.click(); 獲得頁(yè)面上標(biāo)簽獲得頁(yè)面上標(biāo)簽 為為Input的控件元素的控件元素 判斷控件元素類(lèi)判斷控件元素類(lèi) 型是否為復(fù)選框型是否為復(fù)選框 DetailsView控件q使用DetailsView控件完成學(xué)員詳細(xì)信息的顯示q
10、配置數(shù)據(jù)源q定義每一字段的具體呈現(xiàn)q在必要時(shí)使用模板列進(jìn)行更多樣的數(shù)據(jù)呈現(xiàn)q也可與GridView控件在同頁(yè)面使用使用效果演示FormView控件 qFormView服務(wù)器控件與DetailsView服務(wù)器控件在功能上非常相似,也是用來(lái)顯示數(shù)據(jù)源中的一條記錄,支持?jǐn)?shù)據(jù)的增加、刪除、修改、分頁(yè)等功能。它和DetailsView控件之間的差別是,DetailsView控件使用表格布局,在該布局中,記錄的每個(gè)字段都各自顯示為一行,而FormView控件不指定用于顯示記錄的預(yù)定義布局。使用者必須自己使用模板指定用于顯示的布局。 DataListq以某種格式顯示數(shù)據(jù)q格式可以使用模板和樣式進(jìn)行定義q可用
11、于任何重復(fù)結(jié)構(gòu)中的數(shù)據(jù),如表q控件使用 HTML 中的相關(guān)的元素在列表中呈現(xiàn)項(xiàng)q內(nèi)容不會(huì)自動(dòng)分頁(yè),需要使用其它分頁(yè)手段q內(nèi)容不會(huì)自動(dòng)排序,需要使用其它排序手段DataList模板屬性名稱(chēng)說(shuō)明ItemTemplate 項(xiàng)模板,標(biāo)記了每行顯示的內(nèi)容項(xiàng)模板,標(biāo)記了每行顯示的內(nèi)容AlternatingItemTemplate 交替項(xiàng)模板,可設(shè)置交替行顯示不同的風(fēng)格,不交替項(xiàng)模板,可設(shè)置交替行顯示不同的風(fēng)格,不設(shè)置時(shí),與項(xiàng)模板相同設(shè)置時(shí),與項(xiàng)模板相同SelectedItemTemplate 選中項(xiàng)模板,設(shè)置選中后的特殊樣式選中項(xiàng)模板,設(shè)置選中后的特殊樣式EditItemTemplate 編輯項(xiàng)模板編輯項(xiàng)
12、模板HeaderTemplate 和和 FooterTemplate頁(yè)眉和頁(yè)腳的模板頁(yè)眉和頁(yè)腳的模板SeparatorTemplate 分隔符模板,一般用分隔符模板,一般用(一條直線一條直線) )分頁(yè)和排序q信息數(shù)量很多,需要增加分頁(yè)和排序,但是DataList沒(méi)有內(nèi)置分頁(yè)排序的功能。q要綁定的數(shù)據(jù)是已排序的數(shù)據(jù)q只綁定當(dāng)前顯示頁(yè)面的數(shù)據(jù)手寫(xiě)代碼綁定:根據(jù)用戶選擇的分頁(yè)和排序條件,對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢,返回相應(yīng)的結(jié)果 排序q由于采用手動(dòng)數(shù)據(jù)源綁定,則可以將排序操作直接寫(xiě)入數(shù)據(jù)源獲得的方法內(nèi)部q步驟:q在頁(yè)面中存放一個(gè)用于記錄當(dāng)前排序信息的隱藏域q點(diǎn)擊排序按鈕時(shí)記錄相應(yīng)的Order By子句q加載數(shù)
13、據(jù)時(shí)使用Order By子句q操作演示分頁(yè)類(lèi)實(shí)現(xiàn)分頁(yè)qPagedDataSource類(lèi)此控件可為任何數(shù)據(jù)綁定控件進(jìn)行分頁(yè)功能的實(shí)現(xiàn),它封裝了原數(shù)據(jù)源,并將其進(jìn)行一定處理再返回給數(shù)據(jù)綁定控件屬性名稱(chēng)說(shuō)明CurrentPageIndex當(dāng)前頁(yè)P(yáng)ageCount總頁(yè)數(shù)Count總記錄數(shù)PageSize每頁(yè)記錄數(shù) AllowPaging控件是否實(shí)現(xiàn)自動(dòng)分頁(yè)功能DataSource數(shù)據(jù)源指定數(shù)據(jù)源和當(dāng)前頁(yè)、 PageSize,即可使用,類(lèi)自動(dòng)計(jì)算其他相關(guān)屬性使用存儲(chǔ)過(guò)程實(shí)現(xiàn)真正自定義分頁(yè)q 上述的分頁(yè)操作其實(shí)還存在問(wèn)題,會(huì)將多余的數(shù)據(jù)全部取到應(yīng)用程序內(nèi)存中再進(jìn)行分頁(yè)計(jì)算是否呈現(xiàn)數(shù)據(jù)q 如何才能實(shí)現(xiàn)需要呈
14、現(xiàn)多少數(shù)據(jù)就查詢多少數(shù)據(jù)呢?q 分頁(yè)顯示需要的參數(shù)q 每頁(yè)顯示的記錄數(shù)(PageSize)q 需要顯示的是第幾頁(yè)(CurrentPage)q 分頁(yè)需要的內(nèi)容q 總記錄數(shù)(Count):統(tǒng)計(jì)綁定的結(jié)果集得出q 總頁(yè)數(shù):計(jì)算Count/ PageSizeq 另外需要判斷當(dāng)前頁(yè)是否在頁(yè)數(shù)范圍內(nèi)q 計(jì)算當(dāng)前頁(yè)需顯示的內(nèi)容(第幾條到第幾條)q 實(shí)現(xiàn)通用的表查詢需要的信息q 表名、字段列表、主鍵、條件子句、排序子句SQL語(yǔ)句分頁(yè)的思路q如何取得如下分頁(yè)數(shù)據(jù):q每頁(yè)十條q第三頁(yè)的數(shù)據(jù)q實(shí)現(xiàn)方法分析q用排名函數(shù),讀取第21-30條數(shù)據(jù)就可以了取得序號(hào)為21-30的記錄 SQL語(yǔ)句沒(méi)有序號(hào)的功能,怎么辦? SQ
15、L語(yǔ)句分頁(yè)的思路陰影部分為前20條數(shù)據(jù)(TOP 20) 不包含陰影部分的前10條記錄(TOP 10) SQL語(yǔ)句分頁(yè)實(shí)現(xiàn)q返回總頁(yè)數(shù)的語(yǔ)句q返回結(jié)果集的語(yǔ)句Select Top 頁(yè)容量 * from 表 where 條件 and id Between N1 and N2 order by 排序條件Select Count(*) from 表 where 條件統(tǒng)計(jì)總數(shù),可用于計(jì)算總頁(yè)數(shù)等信息 嵌套查詢,注意兩次填寫(xiě)一樣的排序條件 注:該語(yǔ)句基于SQL Server,不同的數(shù)據(jù)庫(kù)有不同查詢語(yǔ)句演示示例:使用SQL語(yǔ)句返回分頁(yè)數(shù)據(jù) SQLServer2005分頁(yè)查詢分頁(yè)實(shí)現(xiàn)CREATE PROC P
16、agingtbName NVARCHAR(50),pkName NVARCHAR(50),fNames NVARCHAR(500),pageSize INT,pageIndex INT,where NVARCHAR(100),order NVARCHAR(100),rCount INT OUTPUTASIF order= SET order= ORDER BY +pkNameELSE SET order= ORDER BY +orderDECLARE s NVARCHAR(4000),min INT,max INTSELECT min=pageSize*pageIndex+1,max=min+
17、pageSizeSET s=SELECT COUNT(+pkName+) C INTO t FROM +tbName+ WHERE 1=1 +whereEXEC(s)SELECT rCount=C FROM tDROP TABLE tSET s=SELECT +fNames+ FROM(SELECT ROW_NUMBER() OVER(+order+) _N_,+fNames+ FROM +tbName+ WHERE 1=1 +where+)TA WHERE _N_ BETWEEN +CONVERT(VARCHAR,min)+ AND +CONVERT(VARCHAR,max)EXEC(s)GODECLARE c INTEXEC Paging Student,StuGuid,StuGuid,StuNumber,StuNo,StuName,StuComp,StuBirthday,4,2,StuNumber,c OUTPUTprint c小結(jié)q分頁(yè)類(lèi)設(shè)置當(dāng)前頁(yè)數(shù)的屬性是什么?q業(yè)務(wù)層返回的數(shù)據(jù)集合,通過(guò)分頁(yè)類(lèi)最終綁定到顯示控件的順序是什么?q使用分頁(yè)類(lèi)時(shí),是否需要計(jì)算數(shù)據(jù)的總數(shù)?Rep
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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é)課件
- 04品牌授權(quán)塔吊品牌授權(quán)使用合同
- 2024年度汽車(chē)租賃與售后服務(wù)合同
- 2024年度道路照明工程燈具維修勞務(wù)分包合同
- 2024年屋面瓦鋪設(shè)工程項(xiàng)目合同
- 2024家庭裝飾裝修的合同模板
- 2024年度衛(wèi)星導(dǎo)航系統(tǒng)應(yīng)用合作協(xié)議
- 2024年度軟件開(kāi)發(fā)與測(cè)試合同
- 2024年度知識(shí)產(chǎn)權(quán)許可合同.do
- 2024年度物流配送服務(wù)承包商的選取協(xié)議
- 3C戰(zhàn)略三角模型
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)示范工程質(zhì)量管理體系與措施
- 學(xué)生頂崗實(shí)習(xí)安全教育課件
- 公司組織架構(gòu)圖模板課件
- 遼寧省葫蘆島市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 植物種子的傳播方式課件
- 電纜敷設(shè)施工方案及安全措施
- 百合干(食品安全企業(yè)標(biāo)準(zhǔn))
- 肺血栓栓塞癥臨床路徑(縣級(jí)醫(yī)院版)
- 國(guó)開(kāi)成本會(huì)計(jì)第10章綜合練習(xí)試題及答案
- T∕CSCS 012-2021 多高層建筑全螺栓連接裝配式鋼結(jié)構(gòu)技術(shù)標(biāo)準(zhǔn)-(高清版)
評(píng)論
0/150
提交評(píng)論