在GridView的頁(yè)腳中顯示統(tǒng)計(jì)信息 在GridView的頁(yè)腳中顯示統(tǒng)計(jì)信息(首先要做的工作是把GridView的ShowFooter屬性設(shè)為true,并更改其style) 利用2種方法來(lái)統(tǒng)計(jì)數(shù)據(jù): 1. SQL查詢(統(tǒng)計(jì)的是全部項(xiàng)) SELECT CategoryID, AVG(UnitPrice), SUM(UnitsInStock), SUM(UnitsOnOrder) 2.基于GridView的RowDataBound事件處理方法(它會(huì)在每一行綁定到GridView的時(shí)候被觸發(fā),但在加入Rows之前,可以使用e訪問) 要在頁(yè)腳的特定單元格中顯示文本,可以使用use e.Row.Cells[index].Text = value,單元格的索引是從0開始的。代碼如下: protected void ProductsInCategory_RowDataBound(object sender, GridViewRowEventArgs e) // 在相應(yīng)的單元格中顯示統(tǒng)計(jì)數(shù)據(jù),無(wú)需數(shù)據(jù)綁定 使用此種方法由于footer是在最后加入Rows的,所以可以統(tǒng)計(jì)出數(shù)據(jù),但是如果分頁(yè)的話,統(tǒng)計(jì)出的數(shù)據(jù)只代表當(dāng)前頁(yè)而非所有項(xiàng)。如下圖: 統(tǒng)計(jì)的數(shù)據(jù)是當(dāng)前頁(yè)而非全部 結(jié)束語(yǔ):數(shù)據(jù)表達(dá)的方式有多種,可以看具體情況選擇。下面的語(yǔ)句中還包含了一些東西,還要進(jìn)一步理解:Northwind.ProductsRow product = (Northwind.ProductsRow)((System.Data.DataRowView)e.Row.DataItem).Row; 概述插入、更新和刪除數(shù)據(jù) 在整個(gè)站點(diǎn)中加入一個(gè)新內(nèi)容的文件夾(下面包含很多頁(yè)面),要使這些它在站點(diǎn)導(dǎo)航中顯示,可以將建立的用戶控件(ascx文件)拖入文件下的默認(rèn)頁(yè)面中(default.aspx),并修改站點(diǎn)導(dǎo)航模板(sitemap文件),將新建頁(yè)面節(jié)點(diǎn)加入其中。 使用數(shù)據(jù)源配置向?qū)?lái)配置ObjectDataSource的一個(gè)影響是Visual Studio設(shè)置了OldValuesParameterFormatString屬性為original_{0} 。這個(gè)屬性值用來(lái)包含數(shù)據(jù)被編輯時(shí)的原始值,它在下面兩種情況下非常有用: 通過它的職能標(biāo)記綁定GridView到ObjectDataSource有下面兩點(diǎn)的好處: 2. DataKeyNames屬性被賦值為隱含對(duì)象的主鍵。這是在使用GridView來(lái)編輯或刪除數(shù)據(jù)的要點(diǎn),因?yàn)檫@個(gè)屬性象指出了標(biāo)識(shí)唯一記錄的那個(gè)字段(或是一組字段)。(DataKeyNames屬性讓每一行關(guān)聯(lián)一個(gè)或多個(gè)數(shù)據(jù)字段, 經(jīng)常用于唯一標(biāo)識(shí)GridView行. SelectedValue屬性返回選中行的DataKeyNames中的第一個(gè)數(shù)據(jù)字段的值, SelectedDataKey返回選中行的DataKey對(duì)象, 它包含了該行的所有指定數(shù)據(jù)主鍵字段的值.) 在GridView中,當(dāng)最終用戶點(diǎn)擊特定一行的編輯按鈕時(shí),引發(fā)一次回傳并且GridView執(zhí)行以下步驟: 2. 通過調(diào)用它的Select()方法,GridView重新綁定自己到ObjectDataSource。 3. 與EditItemIndex相匹配的行呈現(xiàn)為編輯模式。在此模式下,編輯按鈕替換為保存和取消按鈕,并且那些ReadOnly屬性為False的綁定列呈現(xiàn)為TextBox服務(wù)器控件,這些TextBox的Text屬性被賦值為相應(yīng)的數(shù)據(jù)字段的值。 到這里HTML標(biāo)記被返回到瀏覽器,允許最終用戶可以修改行數(shù)據(jù)。當(dāng)用戶點(diǎn)擊保存按鈕,再次發(fā)生一次回傳,并且GridView執(zhí)行以下幾個(gè)步驟: 1. ObjectDataSource的UpdateParameters的值被賦值為最終用戶在GridView的編輯界面輸入的值。 2. 調(diào)用ObjectDataSource的Update()方法,更新指定的記錄。 3. 通過調(diào)用它的Select()方法,GridView重新綁定自己到ObjectDataSource。 當(dāng)最終用戶點(diǎn)擊某一特定行的刪除按鈕時(shí),引發(fā)一次回傳并且GridView執(zhí)行以下步驟: 1. 對(duì)ObjectDataSource的DeleteParameters賦值 2. 調(diào)用ObjectDataSource的Delete()方法,刪除指定的記錄 3. 通過調(diào)用它的Select()方法GridView重新綁定到ObjectDataSource 賦值到DeleteParameters的值是點(diǎn)擊刪除按鈕這一行的DataKeyNames字段的值。因此正確地設(shè)置GridView的DataKeyNames屬性是至關(guān)重要的。如果缺少了這個(gè),DeleteParameters將在第1步被賦上一個(gè)null值,從而在第2步中將不會(huì)導(dǎo)致刪除任何記錄。 Scott Mitchell指出:DetailsView的CurrentMode 屬性指示當(dāng)前顯示的界面并可以被設(shè)置為下面幾個(gè)值之一:Edit、Insert或ReadOnly 。DefaultMode屬性則指示DetailsView在完成一次編輯或插入之后顯示的模式,這在需要讓DetailsView保持編輯或插入模式不變時(shí)是很有用的。 確實(shí)DefaultMode屬性則指示DetailsView在完成一次編輯或插入之后顯示的模式,比如事先更改DetailsView的DefaultMode為edit的話,那么網(wǎng)頁(yè)加載后DetailsView將會(huì)以edit的模式出現(xiàn),如下圖:
|
聯(lián)系客服