這篇文章將為大家詳細(xì)講解有關(guān)在ASP.NET 2.0中如何使用FormView模板,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
創(chuàng)新互聯(lián)公司主打移動(dòng)網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、
外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護(hù)、
域名申請(qǐng)、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實(shí)力的保障下,我們?yōu)榭蛻?hù)承諾穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再?zèng)Q定采用什么樣的設(shè)計(jì)。最后,要實(shí)現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計(jì),我們還會(huì)規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。
跟DetailsView不同,F(xiàn)ormView并不是由那些雜七雜八的列所組成的。你不能給一個(gè)FormView添加BoundField或是TemplateField,不過(guò)FormView是使用模板來(lái)呈現(xiàn)的。我們可以這樣來(lái)理解FormView,把它當(dāng)作只含有一個(gè)TemplateField的DetailsView控件。FormView支持以下這些模板:
· ItemTemplate – 用于在FormView種呈現(xiàn)一個(gè)特殊的記錄
· HeaderTemplate – 用于指定一個(gè)可選的頁(yè)眉行
· FooterTemplate –用于指定一個(gè)可選的頁(yè)腳行
· EmptyDataTemplate – 當(dāng)FormView的DataSource缺少記錄的時(shí)候,EmptyDataTemplate將會(huì)代替
ItemTemplate來(lái)生成控件的標(biāo)記語(yǔ)言
· PagerTemplate – 如果FormView啟用了分頁(yè)的話(huà),這個(gè)模板可以用于自定義分頁(yè)的界面
· EditItemTemplate / InsertItemTemplate – 如果FormView支持編輯或插入功能,那么這兩種模板可以用于自定義相關(guān)的界面
在本節(jié)教程中,我們將解釋如何使用FormView控件來(lái)為產(chǎn)品呈現(xiàn)一個(gè)不規(guī)則的外觀。FormView的ItemTemplate將會(huì)使用一個(gè)頁(yè)眉元素和
的結(jié)合體來(lái)顯示名稱(chēng)、分類(lèi)、供應(yīng)商等等的值,而不是使用各種各樣的列(如圖一所示)。圖一:FormView打破了DetailsView的那種格子一樣外觀
第一步:將數(shù)據(jù)綁定到FormView
打開(kāi)FormView.aspx頁(yè)面,并從工具箱中拖一個(gè)FormView到設(shè)計(jì)器中。FormView剛剛添加到頁(yè)面上時(shí),它就是一個(gè)灰色的方塊,這就告訴我們它需要一個(gè)ItemTemplate。
圖二:FormView在添加一個(gè)ItemTemplate之前是不會(huì)在設(shè)計(jì)器中呈現(xiàn)出來(lái)的
可以手工編寫(xiě)代碼(在源視圖中)來(lái)添加ItemTemplate,也可以通過(guò)在設(shè)計(jì)器中將FormView綁定到一個(gè)數(shù)據(jù)源控件上來(lái)實(shí)現(xiàn)自動(dòng)添加。這個(gè)自動(dòng)生成的ItemTemplate包含了用于顯示各字段的名稱(chēng)的HTML代碼,還有用于顯示各字段的值的Label控件,當(dāng)然了,這些Label控件的Text屬性都已經(jīng)綁定到了各相應(yīng)的字段上。這個(gè)操作也同時(shí)生成了InsertItemTemplate和EditItemTemplate,它們?yōu)閿?shù)據(jù)源控件的每一個(gè)字段都呈現(xiàn)了一個(gè)輸入控件。
如果你想要自動(dòng)生成模板,首先應(yīng)該使用ProductsBLL類(lèi)的GetProducts()方法來(lái)給FormView添加一個(gè)ObjectDataSource控件,通過(guò)FormView的智能標(biāo)簽?zāi)憔涂梢宰龅缴厦娴倪@個(gè)操作。這樣就可以創(chuàng)建一個(gè)帶有ItemTemplate、InsertItemTemplate和EditItemTemplate的FormView了。在源視圖中,刪除InsertItemTemplate和EditItemTemplate,因?yàn)槲覀儸F(xiàn)在對(duì)創(chuàng)建一個(gè)可編輯和可插入的FormView并不感興趣。然后,清空ItemTemplate中的標(biāo)記語(yǔ)言代碼,這樣我才可以工作于一個(gè)干凈的環(huán)境上。
如果你喜歡手工建立ItemTemplate,你可以從工具箱中拖一個(gè)ObjectDataSource到設(shè)計(jì)器中并配置它,這里可不要在設(shè)計(jì)器中為FormView添加數(shù)據(jù)源。我們應(yīng)該到源視圖中手工的將ForView的DataSourceID屬性設(shè)置為ObjectDataSource的ID,然后再手工添加ItemTemplate。不管你決定使用哪種方式,反正最后你的FormView的聲明標(biāo)記代碼應(yīng)該像下面這個(gè)樣子:
花點(diǎn)兒時(shí)間到FormView的智能標(biāo)簽中勾上“啟用分頁(yè)(Enable Paging)”復(fù)選框,這樣可以在FormView的聲明標(biāo)記代碼中加上AllowPaging="True"這么一個(gè)屬性(attribute)。另外,把EnableViewState屬性設(shè)置為false。
第二步:定義ItemTemplate的標(biāo)記代碼(MarkUp)
在將FormView綁定到ObjectDataSource控件并且將其配置為支持分頁(yè)之后,我們就準(zhǔn)備指定ItemTemplate的內(nèi)容了。在本教程中,讓我們將產(chǎn)品名稱(chēng)顯示在一個(gè)
中。跟著讓我們使用
將余下的產(chǎn)品屬性顯示在一個(gè)四列的表中,其中第一列和第三列用于顯示產(chǎn)品屬性的名稱(chēng),第二列和第四列用于顯示產(chǎn)品屬性的值。在設(shè)計(jì)器中通過(guò)FormView的模板編輯界面或是在源視圖中手工輸入代碼都可以添加上面所說(shuō)的這些標(biāo)記代碼。使用模板的時(shí)候,我發(fā)現(xiàn)直接在源視圖中編代碼會(huì)來(lái)得比較快,不過(guò)你可以使用任何一種讓你覺(jué)得夠爽的方式。下面的聲明標(biāo)記代碼展示了FormView在完成了ItemTemplate的結(jié)構(gòu)之后所應(yīng)該有的樣子:
<%# Eval("ProductName") %>
Category: |
<%# Eval("CategoryName") %> |
Supplier: |
<%# Eval("SupplierName")%> |
Price: |
<%# Eval("UnitPrice",
"{0:C}") %> |
Units In Stock: |
<%# Eval("UnitsInStock")%> |
Units On Order: |
<%# Eval("UnitsOnOrder") %> |
Reorder Level: |
<%# Eval("ReorderLevel")%> |
Qty/Unit |
<%# Eval("QuantityPerUnit") %> |
Discontinued: |
' />
|
注意這個(gè)數(shù)據(jù)綁定語(yǔ)法——以<%# Eval("ProductName") %>為例——可以直接插入到模板的輸出中。那是因?yàn)樗鼪](méi)有必要綁定到一個(gè)Label控件的Text屬性上。舉個(gè)例子,比如我們要將ProductName的值使用
<%# Eval("ProductName") %>
來(lái)顯示在一個(gè)元素中,那么產(chǎn)品“Chai”將被輸出為Chai
。
CSS類(lèi)ProductPropertyLabel和ProductPropertyValue用于指定
中的產(chǎn)品屬性的名稱(chēng)和值的樣式。這些CSS類(lèi)定義在Styles.css中,它們使產(chǎn)品屬性的名稱(chēng)粗體顯示并且右對(duì)齊,它們還給產(chǎn)品屬性的值加上一個(gè)右填充。由于FormView沒(méi)有CheckBoxField,要將Discontinued的值顯示為一個(gè)CheckBox的話(huà),我們就必須自己添加一個(gè)CheckBox控件。將這個(gè)CheckBox控件的Enabled屬性設(shè)置為false以使其只讀,并將其Checked屬性綁定到Discontinued字段上去。
完成了ItemTemplate之后,產(chǎn)品信息就以一種更加不規(guī)則的方式來(lái)顯示了。來(lái)比較一下上一節(jié)中的DetailsView的輸出(圖三)和本節(jié)所討論的FormView的輸出(圖四)。
圖三:生硬的DetailsView輸出
關(guān)于在ASP.NET 2.0中如何使用FormView模板就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章題目:在ASP.NET2.0中如何使用FormView模板-創(chuàng)新互聯(lián)
鏈接地址:http://weahome.cn/article/djehoi.html