《ASP NET程序設(shè)計(jì)與開發(fā)》課件第9章_第1頁
《ASP NET程序設(shè)計(jì)與開發(fā)》課件第9章_第2頁
《ASP NET程序設(shè)計(jì)與開發(fā)》課件第9章_第3頁
《ASP NET程序設(shè)計(jì)與開發(fā)》課件第9章_第4頁
《ASP NET程序設(shè)計(jì)與開發(fā)》課件第9章_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

9.1DetailsView簡介

9.2DetailsView控件的基本設(shè)置

9.3在DetailsView控件中進(jìn)行分頁

9.4使用DetailsView控件修改數(shù)據(jù)

9.5DetailsView控件的常用事件

本章小結(jié)

訓(xùn)練任務(wù)9.1DetailsView簡介

DetailsView與GridView的功能非常相似,同樣具有編輯、刪除、分頁等功能,區(qū)別在于DetailsView控件每次僅顯示一條記錄,而GridView每次則可以顯示多條記錄。DetailsView還具備GridView所沒有的新建數(shù)據(jù)功能。使用DetailsView控件,用戶可以從它的關(guān)聯(lián)數(shù)據(jù)源中一次顯示、編輯、插入或刪除一條記錄。即使DetailsView控件的數(shù)據(jù)源公開了多條記錄,該控件一次也僅顯示一條數(shù)據(jù)記錄。默認(rèn)情況下,DetailsView控件將記錄的每個(gè)字段顯示在自己的一行內(nèi)。DetailsView控件不支持排序。

DetailsView控件可以自動(dòng)對(duì)其關(guān)聯(lián)數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行分頁,若要啟用分頁,則需將AllowPaging屬性設(shè)置為True。從關(guān)聯(lián)的數(shù)據(jù)源選擇特定的記錄時(shí),可以通過分頁到該記錄進(jìn)行選擇。由DetailsView控件顯示的記錄是當(dāng)前選擇的記錄。

9.1.1DetailsView操作界面

1.DetailsView顯示數(shù)據(jù)界面

圖9-1所示為DetailsView顯示數(shù)據(jù)界面,具有“新建”、“編輯”、“刪除”、“分頁”等功能。圖9-1DetailsView顯示數(shù)據(jù)頁面

2.DetailsView編輯頁面

圖9-2所示為DetailsView編輯數(shù)據(jù)頁面,可以在輸入數(shù)據(jù)后,單擊“更新”來更新數(shù)據(jù),或者單擊“取消”來取消更新。圖9-2DetailView編輯數(shù)據(jù)頁面以上語法結(jié)構(gòu)與GridView非常相似,其不同之處在于字段的語法,GridView是Columns,但是DetailsView為Fields。9.2DetailsView控件的基本設(shè)置9.2.1DetailsView屬性的設(shè)置

DetailsView屬性大多同GridView類似,在此僅介紹不同的屬性。

(1)?DefaultMode:可以設(shè)置DetailsView的默認(rèn)模式。當(dāng)用戶執(zhí)行DetailsView時(shí)為默認(rèn)模式,包括ReadOnly(只讀模式)、Edit(編輯模式)和Insert(新建模式)。

(2)?Fields:DetailsView的字段,相當(dāng)于GridView的Columns。9.2.2DetailsView字段的設(shè)置

DetailsView包含表9-1所列的字段。DetailsView與GridView的主要區(qū)別如下:

(1)?GridView字段稱為Column,而且字段語法包含在<Columns></Columns>語法中。

(2)?DetailsView字段稱為Field,而且字段語法也包含在<Fields></Fields>語法中。9.2.3DetailsView的字段模板類型

DetailsView字段模板有下列類型,如表9-2所示。

DetailsView字段模板比GridView多了“新建模板”(InsertTemplate),但是少了“表尾模板”(FooterTemplate)。9.2.4DetailsView的表格模板

前面所列為字段模板,另外還有4個(gè)表格模板,如表9-3所示。DetailsView的表格模板比GridView多了“表頭模板”(HeaderTemplate)和“表尾模板”(FooterTemplate)。9.3在DetailsView控件中進(jìn)行分頁

DetailsView控件具有內(nèi)置的支持,允許用戶一次一條地對(duì)記錄分頁,還支持自定義分頁用戶界面(UI)。在DetailsView控件中,一個(gè)數(shù)據(jù)頁就是一個(gè)綁定記錄。如果DetailsView控件被綁定到某個(gè)數(shù)據(jù)源控件,則此控件將從數(shù)據(jù)源獲取所有記錄,顯示當(dāng)前頁的記錄,并丟棄其余記錄。當(dāng)用戶移到另一頁時(shí),DetailsView控件會(huì)重復(fù)此過程,顯示另一條記錄。如果用戶正使用SqlDataSource控件,并將其DataSourceMode屬性設(shè)置為DataReader,則DetailsView控件無法實(shí)現(xiàn)分頁。

DetailsView控件支持對(duì)其數(shù)據(jù)源中的記錄進(jìn)行分頁,若要啟用分頁,則只需將AllowPaging屬性設(shè)置為True,在控件的最下端會(huì)添加頁碼顯示。

用戶可以用多種方式自定義DetailsView分頁的用戶界面。在將AllowPaging屬性設(shè)置為True時(shí),PagerSettings屬性允許自定義DetailsView控件生成的分頁用戶界面的外觀。DetailsView控件可顯示允許向前和向后導(dǎo)航的方向控件以及允許用戶移動(dòng)到特定頁的數(shù)字控件。

DetailsView控件的PagerSettings屬性設(shè)置為一個(gè)PagerSettings類??梢酝ㄟ^將DetailsView控件的Mode屬性設(shè)置為PagerButtons值來自定義分頁模式。例如,用戶可以通過以下代碼來自定義分頁用戶界面模式:

DetailsView1.PagerSettings.Mode=PagerButtons.NextPreviousFirstLast;

也可以通過屬性窗口設(shè)置Mode屬性來指定分頁用戶界面,可用的模式如表9-4所示。9.4使用DetailsView控件修改數(shù)據(jù)

DetailsView控件具有一項(xiàng)內(nèi)置功能,用戶無需編程即可編輯或刪除記錄,用戶可以使用事件和模板來自定義DetailsView控件的編輯功能。在DetailsView控件中顯示來自數(shù)據(jù)源的單條記錄的值,其中每個(gè)數(shù)據(jù)行表示該記錄的一個(gè)字段。DetailsView控件允許用戶編輯、刪除和插入記錄。用戶可以通過將AutoGenerateEditButton、AutoGenerateInsertButton和AutoGenerate-DeleteButton屬性中的一個(gè)或多個(gè)設(shè)置為True來啟用DetailsView控件的內(nèi)置編輯功能,如圖9-3所示。DetailsView控件將自動(dòng)添加此功能,使用戶能夠編輯或刪除當(dāng)前綁定的記錄以及插入新記錄,但前提是DetailsView控件的數(shù)據(jù)源支持編輯。圖9-3啟用DetailsView內(nèi)置編輯功能

DetailsView控件提供了一個(gè)用戶界面,使用戶能夠修改綁定記錄的內(nèi)容。通常在一個(gè)可編輯視圖中會(huì)顯示一個(gè)附加行,其中包含“編輯”、“新建”和“刪除”命令按鈕。默認(rèn)情況下,這一行會(huì)添加到DetailsView控件的底部。

當(dāng)用戶單擊某個(gè)命令按鈕時(shí),DetailsView控件會(huì)重新顯示該行,并在其中顯示可讓用戶修改該行內(nèi)容的控件,編輯按鈕將被替換為可讓用戶保存更改或取消編輯行的按鈕。在完成更新后,DetailsView控件會(huì)引發(fā)ItemUpdated事件。此事件使用戶能夠執(zhí)行更新后的邏輯,如完整性檢查。同樣,DetailsView控件會(huì)在完成插入后引發(fā)其ItemInserted事件,而在完成刪除后引發(fā)其ItemDeleted事件。在完成更新且已引發(fā)所有事件后,DetailsView控件會(huì)重新綁定到數(shù)據(jù)源控件以顯示更新后的數(shù)據(jù)。

DetailsView控件的編輯和刪除功能的配置與操作同GridView控件的類似,這里不再詳細(xì)介紹。通過上面的介紹,我們掌握了DetailsView控件的基本用法。下面我們根據(jù)項(xiàng)目任務(wù)的要求,介紹如何向數(shù)據(jù)表中插入一條新的數(shù)據(jù)記錄。項(xiàng)目任務(wù)9-1使用DetailsView控件插入記錄

【要求】使用DetailsView控件向Second數(shù)據(jù)庫的productinfo表中插入新的記錄。

【步驟】

(1)添加一個(gè)新的頁面ExampleDetailsView.aspx,拖放一個(gè)DetailsView控件和一個(gè)SqlDataSource到該頁面上。按照如圖9-4和圖9-5所示的方法配置SqlDataSource,即選擇Product表中的所有數(shù)據(jù)。圖9-4配置“SqlDataSource1”圖9-5配置“高級(jí)SQL生成選項(xiàng)”

(2)?DetailsView的智能標(biāo)記按照?qǐng)D9-6設(shè)置。

(3)按F5鍵,運(yùn)行效果如圖9-7所示。

(4)如果不要求對(duì)字段進(jìn)行約束,則只要我們在空白處輸入合理的數(shù)據(jù),即可按“插入”按鈕向數(shù)據(jù)庫中添加一行新的記錄,如圖9-8所示。圖9-6DetailsView的智能標(biāo)記設(shè)置圖9-7運(yùn)行效果圖9-8插入新記錄9.5DetailsView控件的常用事件

DetailsView控件可引發(fā)一些事件,這些事件在當(dāng)前記錄顯示或更改時(shí)發(fā)生。當(dāng)單擊一個(gè)命令控件(如作為DetailsView控件的一部分的Button控件)時(shí)也會(huì)引發(fā)事件。表9-5列出了DetailsView控件的常用事件。到這里,DetailsView控件的用法就介紹完了。下面根據(jù)項(xiàng)目任務(wù)的另外一個(gè)要求實(shí)現(xiàn)infodetails.aspx頁面。項(xiàng)目任務(wù)9-2實(shí)現(xiàn)infodetail.aspx頁面

【要求】在第8章中,我們介紹了一個(gè)示例,是將title字段換為HyperLinkField。在演示效果中,我們看到當(dāng)單擊標(biāo)題時(shí),可以打開一個(gè)網(wǎng)頁infodetails.aspx,顯示該物品的詳細(xì)信息,本任務(wù)即要求實(shí)現(xiàn)infodetails.aspx頁面。

【步驟】

(1)將infodetails.aspx切換至設(shè)計(jì)窗口,拖放一個(gè)DetailsView控件和SqlDataSource控件到頁面上,如圖9-9所示。

(2)配置SqlDataSource控件,如圖9-10~圖9-12所示。圖9-9增加一個(gè)DetailsView控件和一個(gè)SqlDataSource控件圖9-10選擇productinfo表圖9-11WHERE窗口配置圖9-12“高級(jí)SQL生成選項(xiàng)”窗口

(3)配置DetailsView控件的屬性,選擇數(shù)據(jù)源為SqlDataSource1,選擇自動(dòng)套用格式為“彩色型”,如圖9-13和圖9-14所示。

這時(shí),如果我們從ExampleGridView.aspx中運(yùn)行程序,單擊其中的某一條記錄,則可以看到infodetails.aspx的效果如圖9-15所示。圖9-13選擇數(shù)據(jù)源圖9-14“自動(dòng)套用格式”窗口圖9-15運(yùn)行效果顯然,該效果還不是很完美,比如說“jyxz”、“new”、“fapiao”、“tihuo”字段的顯示是一個(gè)方框,而且我們也不知道這些標(biāo)題代表什么含義,為了使界面顯示得更人性化,我們繼續(xù)對(duì)DetailsView控件做如下配置。

(4)打開DetailsView控件的編輯字段,按照表9-6列出的要求設(shè)置各個(gè)字段的屬性。

(5)為DetailsView控件添加DataBound事件,使其在顯示時(shí)比較人性化,如圖9-16所示。圖9-16在“屬性”窗口中添加DetailsVi

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論