




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
ASP.NET數(shù)據(jù)訪問技術(shù)2023年7月17日層次結(jié)構(gòu)就ASP.NET的數(shù)據(jù)訪問技術(shù)來說,其數(shù)據(jù)操作思路基本上可以分為三層,即數(shù)據(jù)提供層-》數(shù)據(jù)源控件層-》數(shù)據(jù)綁定控件層。其最底層為數(shù)據(jù)提供層,即數(shù)據(jù)源,數(shù)據(jù)源可以是關(guān)系數(shù)據(jù)庫,也可以是類和對象結(jié)構(gòu)中間層為各類數(shù)據(jù)源控件,主要包括SqlDatasource、ObjectDatasource、LinqDatasource等最上層即用戶界面層,ASP.NET通過數(shù)據(jù)綁定控件訪問數(shù)據(jù)源控件提供的數(shù)據(jù)操作,實現(xiàn)數(shù)據(jù)不同形式的顯示和編輯,常用的數(shù)據(jù)綁定控件包括GridView、DetailsView、FormView、ListView等層次結(jié)構(gòu)數(shù)據(jù)源控件都在一定程度上對數(shù)據(jù)操作進行了封裝數(shù)據(jù)綁定控件需要調(diào)用數(shù)據(jù)源控件功能時,僅需將DataSourceID屬性設(shè)置為數(shù)據(jù)源控件的ID,提供相應(yīng)的參數(shù)即可SqlDataSource數(shù)據(jù)源控件SqlDataSource控件使用ADO.NET類與ADO.NET支持的數(shù)據(jù)庫進行交互,它可以訪問多種類型的數(shù)據(jù)庫MicrosoftSQLServer數(shù)據(jù)庫(使用System.Data.SqlClient提供程序),Oracle數(shù)據(jù)庫(使用System.Data.OracleClient提供程序)、ODBC數(shù)據(jù)源(使用System.Data.Odbc提供程序),OleDb數(shù)據(jù)源(使用System.Data.OleDb提供程序)設(shè)置其ProviderName(默認為“System.Data.SqlClient)SqlDataSource數(shù)據(jù)源控件SqlDataSource控件使用ADO.NET類與ADO.NET支持的數(shù)據(jù)庫進行交互,它可以訪問多種類型的數(shù)據(jù)庫MicrosoftSQLServer數(shù)據(jù)庫(使用System.Data.SqlClient提供程序),Oracle數(shù)據(jù)庫(使用System.Data.OracleClient提供程序)、ODBC數(shù)據(jù)源(使用System.Data.Odbc提供程序),OleDb數(shù)據(jù)源(使用System.Data.OleDb提供程序)設(shè)置其ProviderName(默認為“System.Data.SqlClient)SqlDataSource數(shù)據(jù)源控件SqlDataSource使用ADO.NET技術(shù)來訪問數(shù)據(jù)源,開發(fā)人員只需設(shè)置連接字符串數(shù)據(jù)檢索<asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
DataSourceMode="DataReader"ConnectionString="<%$
ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECTLastNameFROMEmployees"></asp:SqlDataSource>SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)檢索CREATEPROCEDUREsp_GetAllEmployeesASSELECTLastNameFROMEmployees;GO此時將SelectCommand屬性設(shè)置為“sp_GteAllEmployees”,可以檢索同樣的數(shù)據(jù),但是需要同時將SelectCommandType屬性(SqlDataSourceCommandType枚舉類型)設(shè)置為StoredProcedure,默認情況下,它被設(shè)置為TextSqlDataSource數(shù)據(jù)源控件數(shù)據(jù)檢索SqlDataSource控件可以返回兩種類型的數(shù)據(jù)集,DataReader和DataSetDataReader數(shù)據(jù)集對象一般用于簡單的讀取數(shù)據(jù)操作,它效率較高,但不支持緩存等其他復(fù)雜操作。DataSet對象可以為數(shù)據(jù)集建立一個完整的內(nèi)存映像,從而支持排序、篩選、分頁等復(fù)雜操作SqlDataSource控件使用DataSourceMode屬性SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)檢索<asp:SqlDataSource
ID="SqlDataSource1"
runat="server"
ConnectionString="<%$
ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECTLastNameFROMEmployeesWHERETitle=@Title">
<SelectParameters>
<asp:ControlParameter
Name="Title"
ControlID="DropDownList1"
PropertyName="SelectedValue"
/>
</SelectParameters></asp:SqlDataSource>SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)檢索SQL命令語句的參數(shù)可以有多種來源,如Parameter對象、Web服務(wù)器控件、Cookie、會話狀態(tài)(Session)、網(wǎng)頁窗體字段(FormField)、網(wǎng)頁查詢字符串(QueryString)等。SqlDataSource數(shù)據(jù)源控件SQL命令語句的參數(shù)Parameter類Name(參數(shù)名稱)、Type(參數(shù)類型)、Direction(參數(shù)方向,ParameterDirection類型)和DefaultValue(默認值)Size屬性DbType屬性ConvertEmptyStringToNullSqlDataSource數(shù)據(jù)源控件SQL命令語句的參數(shù)ControlParameter類指示從運行時的控件獲取參數(shù)的值,可以使用它的ControlID屬性設(shè)置要獲取屬性值的控件ID使用PropertyName指定獲取參數(shù)值的屬性名稱控件的ControlValuePropertyAttribute屬性日歷控件(Calendar)的SelectedDate、GridView控件的SelectedValueSqlDataSource數(shù)據(jù)源控件SQL命令語句的參數(shù)SessionParameter類的對象指示從當前的會話狀態(tài)(Session)中獲取變量的值作為參數(shù)值,變量名稱由SessionField屬性指定。CookieParameter指定從頁面請求的HTTPCookie中獲取參數(shù)的值,CookieName屬性設(shè)定標識使用的HttpCookie對象的名稱。QueryStringParameter定義的參數(shù)從頁面HTTP請求的查詢字符串字段中獲取參數(shù)的值,其QueryStringField屬性用于設(shè)定查詢字符串中的字段名稱。Pro定義的參數(shù)從配置文件中獲取參數(shù)值,其PropertyName指定了配置文件中對應(yīng)的屬性的名稱。FormParameter定義的屬性會嘗試從HTTP請求的窗體對象的字段中獲取參數(shù)值,可以使用FormField屬性指定窗體字段的名稱。SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)檢索在SqlDataSource控件運行時,會將所有的參數(shù)包含在一個SelectParameters集合屬性(ParameterCollection類型)中以供檢索和修改。SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)操作原理SqlDataSource僅是作為一個公開的數(shù)據(jù)操作接口,它的數(shù)據(jù)操作事實上都委托給一個SqlDataSourceView類的對象執(zhí)行數(shù)據(jù)源控件一般從DataSourceControl派生,要求實現(xiàn)一個IDataSource接口,最主要的是實現(xiàn)GetViewNames和GetView兩個方法SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)操作原理DataSourceView一些判斷數(shù)據(jù)源支持的操作類型的屬性CanUpdate(能否更新)、CanInsert(能否插入)、CanDelete(能否刪除)、CanPage(能否分頁)、CanSort(能否排序)、CanRetrieveTotalRowCount(能偶檢索源數(shù)據(jù)中的記錄總數(shù))實現(xiàn)數(shù)據(jù)操作的各種方法ExecuteSelect(檢索數(shù)據(jù))、ExecuteUpdate(更新數(shù)據(jù))、ExecuteInsert(插入數(shù)據(jù))、ExecuteCommand(執(zhí)行命令)(這些方法會返回操作影響的記錄行數(shù))這些操作也可以采用異步模式完成,但是要改為調(diào)用Select、Update、Insert、Delete等方法(注意它們不會返回任何值)SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)操作原理SqlDataSource控件使用的視圖類為SqlDataSourceView它重寫了CanUpdate、CanInsert、CanDelete、CanPage、CanSort、CanRetieveTotalRowCount等屬性和ExecuteSelect、ExecuteUpdate、ExecuteInsert和ExecuteDelete等方法SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)操作原理SqlDataSource控件使用的視圖類為SqlDataSourceView增加了SelectCommand、SelectCommandType和SelectParameters等用于提供數(shù)據(jù)檢索信息的屬性,UpdateCommand、UpdateCommandType和UpdateParameters等設(shè)置記錄更新信息的屬性,InsertCommand、InsertCommandType和InsertParameters等設(shè)置記錄插入信息的屬性,DeleteCommand、DeleteCommandType和DeleteParameters等設(shè)置記錄刪除信息的屬性,F(xiàn)ilterExpression和FilterParameters等用于設(shè)置記錄篩選信息的屬性,SortParameterName(僅用于檢索命令為存儲過程時)等用于設(shè)置數(shù)據(jù)排序信息的屬性。繼承了DataSourceView類的Select、Update、Insert、Delete等異步操作方法SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)檢索在執(zhí)行數(shù)據(jù)檢索之前,會首先引發(fā)一個Selecting事件,傳送一個SqlDataSourceSelectingEventArgs類型的參數(shù)(從SqlDataSourceCommandEventArgs類派生)Cancel屬性參數(shù)的Commmand屬性可以返回數(shù)據(jù)操作所使用的DbCommand對象Arguments屬性可以返回傳遞給Select方法的DataSourceSelectArguments對象。SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)檢索SqlDataSource控件的Select方法可以返回兩種類型的數(shù)據(jù)(使用IEnumerable類型返回),當DataSourceMode屬性設(shè)置為“DataSet”時,它將返回一個DataView對象,當設(shè)置為“DataReader”時,它會返回一個IDataReader對象。SqlDataSource數(shù)據(jù)源控件數(shù)據(jù)檢索完成數(shù)據(jù)檢索后,SqlDataSource(或者SqlDataSourceView)控件會引發(fā)Selected事件,向事件處理程序傳送一個SqlDataSourceStatusEventArgs類型的參數(shù)AffectedRowsCommandException(實際上它將真正的異常放在其InnerException屬性中)ExceptionHandledCancelSelectOnNullParameterSqlDataSource數(shù)據(jù)源控件記錄的更新、插入和刪除操作SqlDataSource控件將相應(yīng)的屬性信息傳遞給關(guān)聯(lián)的SqlDataSourceView控件,然后使用SqlDataSourceView控件的相應(yīng)方法Update、Insert、Delete等完成更新、插入、刪除等操作。如在數(shù)據(jù)綁定控件調(diào)用SqlDataSourceView對象的數(shù)據(jù)操作功能時候,會將Keys、Values、OldValues、NewValues等包含字段信息的字典傳送給SqlDataSourceView對象的ExecuteUpdate、ExecuteInsert、ExecuteDelete方法,這些方法會根據(jù)傳遞的參數(shù)以及SqlDataSource的UpdateCommand、InsertCommandType、DeleteParameters等屬性信息建立相應(yīng)的DbCommand命令,使用數(shù)據(jù)連接完成相應(yīng)的數(shù)據(jù)操作,返回數(shù)據(jù)操作的輸出參數(shù),并捕獲數(shù)據(jù)操作中可能發(fā)生的異常。SqlDataSource數(shù)據(jù)源控件記錄的更新、插入和刪除操作在數(shù)據(jù)更新或刪除操作時,出于操作的需要,數(shù)據(jù)綁定控件可能會同時傳遞字段的原始值和修改后的值,此時為了區(qū)分兩者,可以設(shè)置OldValuesParameterFormatString屬性,如將其設(shè)置為“old_{0}”時,名稱前綴為old的參數(shù)將被字段的原始值而不是當前值取代,如下例:UPDATETable1SETLastModifiedDate=@LastModifiedDate
WHEREKey=@KeyANDLastModifiedDate=@old_LastModifiedDateSqlDataSource數(shù)據(jù)源控件記錄的更新、插入和刪除操作在數(shù)據(jù)更新、插入和刪除操作之前,SqlDataSourceView對象會分別引發(fā)Updating、Inserting和Deleting事件,向事件處理程序傳遞一個SqlDataSourceCommandEventArgs類型的參數(shù)Cancel屬性Command屬性SqlDataSource數(shù)據(jù)源控件記錄的更新、插入和刪除操作在更新、插入和刪除操作完成后,SqlDataSourceView對象會分別引發(fā)Updated、Inserted、Deleted事件,傳遞的參數(shù)類型與Selected事件中相同實際上,SqlDataSourceView使用OnDeleted、OnDataSourceViewChanged方法引發(fā)相應(yīng)的事件,這些方法也可以直接調(diào)用。SqlDataSource數(shù)據(jù)源控件排序、篩選和分頁可以考慮為SelectCommand屬性中的Select語句添加OrderBy字句當SelectCommandType為StoredProcedure時,可以使用SortParameterName屬性指定一個參數(shù)Select方法通過DataSourceSelectArguments類參數(shù)對象的SortExpression屬性為Select方法傳遞一個排序表達式SqlDataSource數(shù)據(jù)源控件排序、篩選和分頁SqlDataSourceView對象也可以使用DataView.RowFilter屬性實現(xiàn)數(shù)據(jù)的篩選,只要設(shè)置了控件的FilterExpression和FilterParameters屬性<asp:SqlDataSource
ID="SqlDataSource2"
EnableCaching="true"
DataSourceMode="DataSet"
runat="server"
ConnectionString="<%$ConnectionStrings:NorthwindConnectionString1%>"
SelectCommand="Select*fromCustomers"
FilterExpression="country='{0}'">
<FilterParameters>
<asp:ControlParameter
Name="countryparam"
ControlID="DropDownList1"
PropertyName="SelectedValue"
/>
</FilterParameters></asp:SqlDataSource>SqlDataSource數(shù)據(jù)源控件排序、篩選和分頁在進行數(shù)據(jù)篩選之前,SqlDataSourceView還會引發(fā)一個Filtering事件,傳遞一個SqlDataSourceFilteringEventArgs類型的參數(shù)Cancel屬性ParameterValues(IorderedDictionary類型)包含了FilterParametes中定義的各個參數(shù)SqlDataSourceView尚不支持分頁GridView數(shù)據(jù)綁定控件GridView控件使用表格的形式來顯示和修改記錄數(shù)據(jù),如下圖所示(圖7.3),它可以實現(xiàn)記錄的顯示、編輯和刪除操作,但是不能添加記錄,它同時還支持記錄顯示的排序和分頁操作。GridView數(shù)據(jù)綁定控件標題列標頭行列腳注行頁導航行數(shù)據(jù)行GridView控件的構(gòu)成GridView控件的行對象GridView控件實際上由若干個GridViewRow行對象構(gòu)成數(shù)據(jù)行(DataRow)、標頭行(Header)、腳注行(Footer)、EmptyDataRow(空數(shù)據(jù)行)、頁導航行(Pager)和分隔符行(Separator)RowType屬性(DataControlRowType類型的枚舉值)可以通過GridView控件的Rows(數(shù)據(jù)行集合)、HeaderRow(標頭行)、FooterRow(腳注行)、TopPagerRow(頂部頁導航行)、BottomPagerRow(底部頁導航行)等屬性來獲得這些行或行集合的引用GridView控件的構(gòu)成GridView控件的行對象RowState屬性返回行的當前狀態(tài)(DataControlRowState類型的枚舉)正常默認狀態(tài)(Normal)、交替行狀態(tài)(Alternate)、選中狀態(tài)(Selected)和編輯狀態(tài)(Edit)GridView控件的構(gòu)成單元格每個GridViewRow對象又由若干單元格(TableCell)對象構(gòu)成(通過Cells集合屬性引用)RowSpan和ColumnSpanText屬性格式設(shè)置(HorizontalAlign屬性和VerticalAlign屬性,Wrap屬性)Controls集合或者FindControl方法來獲取特定控件的引用GridView控件的構(gòu)成GridView控件的列對象創(chuàng)建行對象時候,實際上是根據(jù)Columns屬性中包含的DataControlField對象集合來確定每個字段的顯示和綁定方式ShowHeader(是否顯示標頭)、HeadText(標頭文本)、HeadImageUrl(標頭中顯示圖像的URL,優(yōu)先于HeaderText屬性)、HeaderStyle(標頭樣式)、FooterText(腳注文本)、FooterStyle(腳注樣式)、ItemStyle(顯示文本的樣式)InsertVisibleTableItemStyle(從基礎(chǔ)的Style類派生)類型的對象GridView控件的構(gòu)成類別屬性用途說明顯示和樣式判斷Visible是否顯示
IsEmpty是否已定義樣式元素
Wrap是否換行顯示
大小和對齊方式Hight高度
Width寬度
HorizontalAlign水平對齊方式HorizontalAlign枚舉類型VerticalAlign垂直對齊方式VerticalAlign枚舉類型顯示顏色ForeColor前景色System.Drawing.Color類型BackColor背景色System.Drawing.Color類型邊框設(shè)置BorderColor邊框顏色System.Drawing.Color類型BorderWidth邊框?qū)挾?/p>
BorderStyle邊框樣式BorderStyle枚舉類型字體設(shè)置Font字體對象FontInfo類型GridView控件的構(gòu)成DataControlField的幾個派生類BoundField對象使用文本形式來顯示和綁定的字段,僅需將其DataField屬性設(shè)置為需要綁定的字段名稱即可NullDisplayTextConvertEmptyStringToNullReadOnlyDataFormatString{0:C3}258.4321顯示為貨幣格式$258.432如果希望在編輯模式下也應(yīng)用格式化設(shè)置,需要將ApplayFormatInEditMode屬性設(shè)置為trueGridView控件的構(gòu)成DataControlField的幾個派生類CheckBoxField對象顯示一個復(fù)選框,主要用于綁定布爾型的字段,它其實派生自BoundField綁定的字段必須是布爾型的,或者可以由Bool.Parse方法解析為布爾型TextGridView控件的構(gòu)成DataControlField的幾個派生類ButtonField對象GridView和DetailsView等控件會自動監(jiān)視按鈕的點擊事件,根據(jù)被點擊按鈕的CommandName屬性執(zhí)行不同的操作Edit(編輯)、Cancel(取消)、Delete(刪除)、New(添加)、Update(更新)、Select(選擇)、Insert(插入)、Sort(排序)和Page(分頁)ButtonField類的列字段將會在每行該字段的位置顯示一個按鈕,單擊按鈕會引發(fā)RowCommand事件(GridView控件)或ItemCommand事件(DetailsView控件)按鈕可以有三種類型—普通按鈕(Button),圖像(Image),鏈接(Link)ButtonType屬性DataTextField,ImageUrl,DataTextFormatStringGridView控件的構(gòu)成DataControlField的幾個派生類ImageField對象顯示一個圖像,顯示圖像的URL使用DataImageUrlField和DataImageUrlFormatString兩個屬性來指定 <asp:ImageField
DataImageUrlField="FirstName,LastName“ DataImageUrlFormatString="~\Images\{0}+{1}.jpg"/〉A(chǔ)lternateText,DataAlternateTextField和DataAlternateTextFormatStringNullImageUrl,NullDisplayTextConvertEmptyStringToNull,ReadOnlyGridView控件的構(gòu)成DataControlField的幾個派生類HyperLinkField對象顯示一個超鏈接,通常用于導航到其他相關(guān)網(wǎng)頁靜態(tài)模式NavigateUrl動態(tài)導航,可以使用DataNavigateUrlFields和DataNavigateUrlFormatString屬性<asp:HyperlinkField
DataNavigateUrlFields="ProductID"
DataNavigateUrlFormatString="~\details.aspx?ProductID={0}"
Target="_blank"
/>GridView控件的構(gòu)成DataControlField的幾個派生類HyperLinkField對象顯示一個超鏈接,通常用于導航到其他相關(guān)網(wǎng)頁靜態(tài)模式NavigateUrl動態(tài)導航,可以使用DataNavigateUrlFields和DataNavigateUrlFormatString屬性<asp:HyperlinkField
DataNavigateUrlFields="ProductID"
DataNavigateUrlFormatString="~\details.aspx?ProductID={0}"
Target="_blank"
/>
<asp:
HyperlinkField
DataTextField="UnitPrice“
DataTextFormatString="{0:C}"
/>GridView控件的構(gòu)成DataControlField的幾個派生類CommandField對象能夠自動顯示選擇、編輯、新建、刪除等按鈕,只需要設(shè)置相應(yīng)的屬性—ShowSelectButton,ShowEditButton,ShowInsertButton(僅用于DetailsView控件),ShowDeleteButton。ButtonType可以顯示文本標題,也可以顯示圖像SelectText、EditText、NewText、DeleteText、UpdateText、CancelText、InsertTextSelectImageUrl、EditImageUrl等GridView控件的構(gòu)成DataControlField的幾個派生類TemplateField對象<asp:TemplateField
HeaderText="Author">
<ItemTemplate>
<asp:Image
ID="LeftAuthorImage"
ImageUrl='<%#Eval("zip")%>'
AlternateText="AuthorPhoto"
runat="server"
/>
<asp:Label
ID="LeftFirstNameLabel"
Text='<%#Eval("au_fname")%>'
runat="server"
/>
<asp:Label
ID="LeftLastNameLabel"
Text='<%#Eval("au_lname")%>'
runat="server"
/>
</ItemTemplate></asp:TemplateField>GridView控件的構(gòu)成DataControlField的幾個派生類TemplateField對象<AlternatingItemTemplate>
<asp:Label
ID="RightFirstNameLabel"
Text='<%#Eval("au_fname")%>'
runat="server"
/>
<asp:Label
ID="RightLastNameLabel"
Text='<%#Eval("au_lname")%>'
runat="server"
/>
<asp:Image
ID="RightAuthorImage"
ImageUrl='<%#Eval("zip")%>'
AlternateText="AuthorPhoto"
runat="server"
/></AlternatingItemTemplate>GridView控件的構(gòu)成DataControlField的幾個派生類TemplateField對象<asp:TemplateField
HeaderText="LastName">
<ItemTemplate>
<%#Eval("au_lname")%>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox
ID="LastNameTextBox"
Text='<%#Bind("au_lname")%>'
runat="server"
/>
</EditItemTemplate></asp:TemplateField>GridView控件的構(gòu)成DataControlField的幾個派生類TemplateField對象EditTemplate用于定義該字段在行的編輯狀態(tài)下顯示的內(nèi)容,InsertTemplate用于定義該字段在插入模式下的顯示內(nèi)容,HeaderTemplate用于定義標題行的顯示內(nèi)容,F(xiàn)ooterTemplate用于定義腳注行的顯示內(nèi)容。ConvertEmptyStringToNull屬性GridView控件的數(shù)據(jù)操作數(shù)據(jù)的檢索和顯示DataSourceID屬性源數(shù)據(jù)一般為DataSet、DataTable等規(guī)范類型--DataView對象其他集合類型的源數(shù)據(jù)(如實現(xiàn)了IEnumerable接口的集合)GridView控件將使用反射技術(shù)獲取源數(shù)據(jù)的字段名稱、類型等信息,然后根據(jù)Columns屬性中各個DataControlField列的設(shè)置來生成每個GridViewRow行。GridView控件的數(shù)據(jù)操作數(shù)據(jù)的檢索和顯示每完成一個GridViewRow數(shù)據(jù)行的創(chuàng)建工作后,GridView控件會引發(fā)RowCreated事件修改行的外觀如ForeColor、BackColor、BorderStyle等屬性使用的參數(shù)類為GridViewRowEventArgs,它的Row屬性返回了當前創(chuàng)建的GridViewRow類型的行對象行創(chuàng)建完成后,GridView控件會將各個內(nèi)含控件綁定到相應(yīng)的字段,然后引發(fā)RowDataBound事件修改行中控件綁定的數(shù)據(jù)內(nèi)容與RowCreated事件使用的參數(shù)類相同GridView控件的數(shù)據(jù)操作數(shù)據(jù)的檢索和顯示實現(xiàn)選擇操作可以在GridView的Columns集合中創(chuàng)建一個ButtonField字段,將其CommandName屬性設(shè)置為“Select”,也可以添加一個CommandField字段,將其ShowSelectButton屬性設(shè)置為TrueSelectIndexChanging事件,GridViewSelectEventArgs類型的參數(shù)Cancel屬性NewSelectedIndex屬性SelectedIndexChanged事件SelectedRow,SelectedIndex,SelectedDataKey,SelectedValueGridView控件的數(shù)據(jù)操作數(shù)據(jù)的排序?qū)llowSorting屬性設(shè)置為true在列標題中會顯示LinkButton控件,同時將每一個列字段DataControlField的SortExpression設(shè)置為該列綁定的數(shù)據(jù)字段的名稱。Sorting事件,傳遞一個GridViewSortEventArgs類型的參數(shù)Cancel屬性SortExpression,SortDirectionSorted事件GridView控件的SortExpression和SortDirection屬性GridView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁PageIndex屬性或SetPageIndex方法,PageCount屬性支持兩種類型的分頁設(shè)置設(shè)置PagerSettings屬性Mode屬性,PageButtonCount,NextPageText、PreviousPageText、FirstPageText、LastPageText,NextPageImageUrl、PreviousPageImageUrl、FirstPageImageUrl和LastPageImageUrl,Position,TopPagerRow,BottomPagerRowGridView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁支持兩種類型的分頁設(shè)置PagerTemplate模板包含一些按鈕,將這些按鈕的CommandName屬性設(shè)置為“Page”CommandArgument屬性:First(導航到第一頁)、Last(導航到最后一頁)、Prev(導航到上一頁)、Next(導航到下一頁)、數(shù)字(導航到數(shù)字指定的頁)PageIndexChanging事件,GridViewPageEventArgs類型的參數(shù)Cancel屬性NewPageIndexPageIndexChanged事件PageIndexGridView控件的數(shù)據(jù)操作數(shù)據(jù)的編輯和刪除EditIndex屬性設(shè)置為非-1CommandName為“Edit”按鈕添加了一個CommandField字段并將其ShowEditButton屬性設(shè)置為trueGridView控件的數(shù)據(jù)操作GridView控件的數(shù)據(jù)操作數(shù)據(jù)的編輯和刪除不同的列字段對象會使用不同的方式顯示編輯界面BoundField會根據(jù)綁定字段的數(shù)據(jù)類型顯示適當?shù)木庉嬁丶emplateField將根據(jù)EditItemTemplate模板顯示定義的編輯控件RowEditing事件,GridViewEditEventArgs類型的參數(shù)Cancel屬性,NewEditIndex屬性RowUpdating事件,GridViewUpdateEventArgs類型的參數(shù)Cancel屬性三個IorederedDictionary類型的字典集合Keys,OldValues和NewValuesRowUpdated事件,GridViewUpdatedEventArgs類型的參數(shù)Exception屬性,ExceptionHandled屬性,AffectedRows屬性,KeepInEditMode三個字典Keys,OldValues和NewValuesRowCancelingEdit事件,GridViewCancelEditEventArgs類型的參數(shù)Cancel屬性,RowIndex屬性GridView控件的數(shù)據(jù)操作數(shù)據(jù)的編輯和刪除RowDeleting事件,GridViewDeleteEventArgs類型的參數(shù)Cancel屬性,RowIndex屬性Keys,OldValuesRowDeleted事件,GridViewDeletedEventArgs類型的參數(shù)AffectedRows,Exception和ExceptionHandledKeys和OldKeys字典RowCommand事件,GridViewCommandEventArgs類型的參數(shù)CommandName和CommandArgument屬性GridView控件的數(shù)據(jù)操作GridView控件提供的數(shù)據(jù)記錄的操作方法SelectRow(選擇行),DeleteRow(刪除行),SetEditRow(設(shè)定編輯的行),UpdateRow(更新指定索引位置的行),ExtractRowValues(提取行字段的值),SetPageIndex(使用行索引設(shè)置頁索引),Sort(使用指定的排序表達式和排序方向進行排序)GridView控件也公開了觸發(fā)事件的方法OnRowCommand,OnRowDeleting,OnPageIndexChanged等。GridView控件的界面設(shè)置屬性Width(寬度)、Height(高度)、BackColor(背景色)、BackImageUrl(背景圖片的URL)、HorizontalAlign(水平對齊方式)、GridLines(網(wǎng)格線的樣式,GridLines枚舉類型,包括不顯示None、顯示水平Horizontal、顯示垂直Vertical和都顯示Both四種樣式)、BorderColor(邊框顏色)、BorderWidth(邊框?qū)挾龋orderStyle(邊框類型)、CellPadding(單元格內(nèi)容和邊框之間的距離)、CellSpacing(單元格之間的距離)Font屬性(FontInfo類型的對象)Name(名稱)、Size(大小)、Bold(是否粗體)、Italic(是否斜體)、Overline(是否添加上劃線)、UnderLine(是否添加下劃線)、Strikeout(是否添加刪除線)ShowHeader、ShowFooter,ShowHeaderWhenEmpty,EmptyDataText,EmptyDataTemplateCaption屬性,CaptionAlign屬性TableItemStyle類RowStyle和AlternatingRowStyle,SelectedRowStyle,EditRowStyle,HeaderStyle、FooterStyle和PagerStyleDetailsView數(shù)據(jù)綁定控件與GridView控件相似,但它允許添加數(shù)據(jù)對數(shù)據(jù)的顯示方式不同GridView控件以表格行的形式在一個頁面上重復(fù)顯示多條記錄,每個字段顯示為一列DetailsView在一個頁面上只顯示一條記錄,每個字段顯示為一行DetailsView數(shù)據(jù)綁定控件標題標頭行數(shù)據(jù)行命令行腳注行頁導航行DetailsView數(shù)據(jù)綁定控件DetailsView控件的構(gòu)成也使用各種類型的DataControlField對象定義每個數(shù)據(jù)字段,在頁面文件中用“Fields”來標識,在運行時使用Fields屬性來引用DetailsViewRow對象(從TableRow派生)(Rows集合屬性)DetailsViewRow行對象又包括若干TableCell容器對象(Cells集合屬性,Controls集合屬性或者FindControl方法)DetailsView數(shù)據(jù)綁定控件DetailsView控件的構(gòu)成支持多種類型的行,包括數(shù)據(jù)行(DataRow),空數(shù)據(jù)行(EmptyDataRow),標頭行(Header)、腳注行(Footer)和頁導航行(Pager)RowType屬性(DataControlRowType對象)提供了Rows、HeaderRow、FooterRow、TopPagerRow和BottomPagerRow等屬性來引用行能夠以多種狀態(tài)存在,交替行(Alternate)、正常默認模式(Normal)、編輯模式(Edit)和插入模式(Insert)。RowState屬性(返回DataControlRowState枚舉對象)DetailsView數(shù)據(jù)綁定控件DetailsView控件的構(gòu)成屬性RowIndex繼承了普通網(wǎng)頁控件(WebControl)用于設(shè)置界面特征的屬性Visible(是否可見)、Font(字體信息)、前景色(ForeColor)、背景色(BackColor)、高度(Height)、寬度(Width)、邊框?qū)挾龋˙orderWidth)、邊框顏色(BorderColor)和邊框樣式(BorderStyle)繼承了TableRow類用于設(shè)置顯示格式的一些屬性HorizontalAlign(水平對齊方式)和VerticalAlign(垂直對齊方式)DetailsView控件的數(shù)據(jù)操作數(shù)據(jù)的檢索和顯示DataSourceID屬性根據(jù)Fields集合中各個DataControlField對象的屬性,利用多個DetaisViewRow行對象來顯示第一條記錄的各個字段ItemCreated事件可以使用DataKey或SelectedValue獲取DataKeyNames指定的鍵字段信息DetailsView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁AllowPaging屬性PageIndex、PageCount等屬性或SetPageIndex等方法(每個頁一般只顯示一條記錄)PagerSettings屬性自定義PagerTemplatePageIndexChanging和PageIndexChanged事件參數(shù)對象包含的屬性和操作與GridView控件基本相同DetailsView控件的數(shù)據(jù)操作數(shù)據(jù)的編輯、刪除和添加三種記錄顯示模式—只讀模式(ReadOnly)、編輯模式(Edit)、插入模式(Insert)CurrentMode屬性或ChangeMode方法(DetailsViewMode枚舉類型),或使用按鈕ModeChanging事件,DetailsViewModeEventArgs類型的參數(shù)Cancel,NewMode,CancellingEdit,DefaultModeModeChangedDetailsView控件的數(shù)據(jù)操作數(shù)據(jù)的編輯、刪除和添加增加數(shù)據(jù)修改界面AutoGenerateEditButton、AutoGenerateDeleteButton和AutoGenerateInsertButton在Fields集合中顯式定義CommandField對象,將ShowEditButton、ShowDeleteButton、ShowInsertButton等屬性設(shè)置為true在DetailsView控件中自己添加CommandName屬性為“Edit”、“Delete”、“New”、“Update”、“Insert”和“Cancel”的按鈕(要自己處理界面的切換工作)DetailsView控件的數(shù)據(jù)操作數(shù)據(jù)的編輯、刪除和添加ItemUpdating事件,傳遞一個DetailsViewUpdateEventArgs類參數(shù)對象Cancel,CommandArgument,Keys、OldValues和NewValues(包含所有字段)ItemUpdated事件,傳遞一個DetailsViewUpdatedEventArgs類型的參數(shù)Keys、OldValues和NewValues,AffectedRows、Exception和ExceptionHandled,KeepInEditModeDetailsView控件的數(shù)據(jù)操作數(shù)據(jù)的編輯、刪除和添加ItemInserting事件,傳遞一個DetailsViewInsertEventArgs類型的參數(shù)Cancel和CommandArgument,Values字典ItemInserted事件,傳遞一個DetailsInsertedEventArgs類型的參數(shù)AffectedRows、Exception、ExceptionHandled、Values,KeepInInsertModeDetailsView控件的數(shù)據(jù)操作數(shù)據(jù)的編輯、刪除和添加ItemDeleting事件,傳遞一個DetailsViewDeleteEventArgs類型的參數(shù)Cancel,RowIndex,Keys和ValuesItemDeleted事件,DetailsViewDeletedEventArgs類對象Keys和Values字典,AffectedRows、Exception、ExceptionHandledItemCommand事件,DetailsViewCommandEventArgs類型的參數(shù)直接調(diào)用的數(shù)據(jù)源操作方法DeleteItem(刪除當前記錄)、UpdateItem(更新當前記錄)和InsertItem(將當前記錄插入數(shù)據(jù)源中)支持調(diào)用OnItemCommand、OnItemUpdating、OnItedDeleted等直接觸發(fā)相應(yīng)事件的方法DetailsView控件的數(shù)據(jù)操作界面設(shè)置用于總體顯示格式設(shè)置的屬性Height、GridLines、CellSpacing、Font、Caption、CaptionAlign模板PagerTemplate、EmptyDataTemplate、HeaderTemplate、FooterTemplateHeaderText和FooterTextTableItemStyle類屬性RowStyle(數(shù)據(jù)行樣式)、AlternatingRowStyle(交替數(shù)據(jù)行的樣式)、CommandRowStyle(包含命令按鈕的行的樣式)、EditRowStyle(處于編輯模式時數(shù)據(jù)行的樣式)、InsertRowStyle(處于插入模式時數(shù)據(jù)行的樣式)、EmptyDataRowStyle(空數(shù)據(jù)行的樣式)、HeaderStyle(標頭行的樣式)、FooterStyle(腳注行的樣式)、PagerStyle(頁導航行的樣式)。ListView數(shù)據(jù)綁定控件ListView數(shù)據(jù)綁定控件使用ItemTemplate模板為每條記錄都創(chuàng)建一個ListViewItem對象若干ListViewItem對象在運行時依序放入一個LayoutTemplate模板(根布局)定義的容器內(nèi)模板的定義中必須包含一個占位符控件,如tr、div或span等ID一般定義為“itemPlaceHolder”也可以使用ListView控件的ItemPlaceHolderID來指定其它名稱ListView數(shù)據(jù)綁定控件可以對ListViewItem對象集合進行分組在LayoutTemplate模板中定義一個包含分組模板的容器控件,定義其ID為“GroupPlaceHolder”(GroupPlaceHolderID屬性)定義一個GroupTemplate模板,在該模板中定義中包含一個ListViewItem對象使用的容器控件在運行時,ListView控件首先根據(jù)ItemTemplate模板的定義填充GroupTemplate定義的容器對象,填充的對象個數(shù)使用ListView控件的GroupItemCount屬性指定,該容器創(chuàng)建完畢后,再將其填充到LayoutTemplate模板定義的容器對象,然后開始下一個GroupTemplate模板定義的容器對象的填充過程,依次填充,直到完成整個頁面GroupSeparatorTemplate和ItemSeparatorTemplate指示ListView控件在分組之間和數(shù)據(jù)項之間呈現(xiàn)相應(yīng)的內(nèi)容。ListViewItem類Controls屬性集合或者FindControl方法ListView數(shù)據(jù)綁定控件根據(jù)數(shù)據(jù)記錄創(chuàng)建的ListViewItem對象將被添加到ListView控件的Items屬性集合中實際上添加的是ListViewDataItem對象,它從ListViewItem對象派生,重寫了DataItem、DataItemIndex、DisplayIndex三個屬性ListViewItem對象的其他類型插入項(InsertItem)和空項(EmptyItem)ItemType屬性(ListViewItemType枚舉類型)InsertItem屬性,EditItem屬性ListView控件的數(shù)據(jù)操作數(shù)據(jù)的檢索和顯示ItemCreated事件,傳遞一個ListViewItemEventArgs類型參數(shù)Item屬性獲取創(chuàng)建的ListViewItem對象的引用對其進行一些修改或者添加一些自定義的內(nèi)容ItemDataBound事件,它也會傳遞當前ListViewItem對象的引用,通常用于修改綁定數(shù)據(jù)的內(nèi)容LayoutCreated事件,可以在此事件處理代碼中對根布局進行更改。ListView控件的數(shù)據(jù)操作數(shù)據(jù)的檢索和顯示記錄選擇公開了SelectItem方法在ItemTemplate和AlternatingItemTemplate模板中添加一個按鈕,將其CommandName設(shè)置為“Select”SelectedIndexChanging事件,傳遞一個ListViewSelectEventArgs類型的參數(shù)Cancel,NewSelectedIndexSelectedIndexChanged事件SelectedDataKey(預(yù)先設(shè)置DataKeyNames屬性)、SelectedIndex、SelectedValueListView控件的數(shù)據(jù)操作數(shù)據(jù)的排序公開了Sort方法定義一個CommandName為“Sort”的按鈕,將其CommandArgument設(shè)置為排序表達式Sorting事件,傳遞一個ListViewSortEventArgs類型的參數(shù)Cancel,SortExpression和SortDirectionSorted事件ListView控件的SortExpression和SortDirection屬性ListView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁-原理實現(xiàn)一個接口IPageableItemContainer,由一個DataPager類控件來協(xié)助實現(xiàn)分頁界面DataPager控件可以放置在ListView控件的LayoutTemplate模板之中,也可以放于ListView控件之外,但放于外部時需將其PagedControlID設(shè)置為它所控制的ListView控件的IDDataPager對象的PageSize屬性,EnablePersistedSelection屬性ListView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁-原理IpageableItemContainer接口包含兩個頁面信息屬性StrartRowIndex(數(shù)據(jù)頁上顯示的第一條記錄的索引)MaximumRows(單個數(shù)據(jù)頁上顯示的最大項數(shù))實現(xiàn)一個方法SetPageProperties(使用兩個相應(yīng)的參數(shù)設(shè)置頁面信息屬性)一個事件TotalRowCountAvailable(由DataPager控件使用,實現(xiàn)獲取數(shù)據(jù)源記錄總數(shù)信息等操作)DataPager控件也包含StartRowIndex和MaximumRows兩個屬性以及SetPageProperties方法調(diào)用SetPageProperties方法時,它會用參數(shù)值設(shè)置前兩個屬性并調(diào)用ListView控件的SetProperties方法來更新ListView的頁面信息相關(guān)屬性(如StartRowIndex和MaximumRows)。ListView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁-原理DataPager控件還包括一個TotalRowCount屬性通過處理ListView控件的TotalRowCountAvailable事件獲取OnTotalRowCountAvailable方法PageEventArgs類型的參數(shù)StartRowIndex、MaximumRows和TotalRowCount方法ConnectToEvents將OnTotalRowCountAvailable方法指定為ListView控件的TotalRowCountAvailable事件的處理函數(shù)當ListView控件可以獲取基礎(chǔ)數(shù)據(jù)源中的總記錄數(shù)時,它會引發(fā)TotalRowCountAvailable事件ListView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁DataPager控件支持三種類型的導航界面頁碼型(NumericPagerField)、上下頁型(NextPreviousPagerField)和自定義型(TemplatePagerField)使用類似的DataPagerField對象集合(Fields集合屬性),可以同時包含三類導航頁面DataPagerField類DataPager,QueryStringValue和QueryStringHandled三個派生類—NumericPagerField、NextPreviousPagerField和TemplatePagerField重寫CreateDataPagers(創(chuàng)建用戶界面并添加到指定容器)、CreateField(創(chuàng)建從DataPagerField派生的空對象)和HandleEvent(處理在頁導航字段對象中發(fā)生的事件)ListView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁NumericPagerField字段顯示頁碼(按鈕形式)還能夠顯示上一頁、下一頁按鈕ButtonCount屬性按鈕的類型有三種—普通按鈕(Button)、圖像按鈕(Image)、超鏈接按鈕(Link),ButtonType屬性(ButtonType枚舉類型)上一頁和下一頁按鈕上可以顯示文本(通過PreviousPageText和NextPageText屬性設(shè)置),也可以顯示圖像(通過PreviousPageImagUrl和NextPageImageUrl屬性設(shè)置),格式設(shè)置,NumericButtonCssClass,CurrrentPageLabelCssClass,NextPreviousButtonCssClassListView控件的數(shù)據(jù)操作數(shù)據(jù)的分頁NextPreviousPagerField字段顯示下一頁、上一頁、第一頁、最后頁等按鈕用于導航按鈕的類型(ButtonType屬性):Button、Im
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 財務(wù)會計與管理知識實訓分析教程
- 設(shè)備工作計劃
- 2009年資產(chǎn)評估師-財務(wù)會計測驗試題分章練
- 從資源整合角度解析體能訓練行業(yè)的連鎖加盟模式
- 2025年Android中高級面試必知必會講的明明白白!-備戰(zhàn)2025,android中高級面試必知必會
- 建筑施工特種作業(yè)-建筑架子工附著式腳手架真題庫-1
- 閏土的題目及答案
- 2023年學業(yè)水平合格考試三年分類匯編(真題)-專題一宇宙中的地球02太陽對地球的影響
- 11 2 成對數(shù)據(jù)的統(tǒng)計分析-高考數(shù)學真題分類 十年高考
- 新疆且末縣堯勒薩依金礦開采項目環(huán)評報告
- 2025至2030年中國高鎳三元材料產(chǎn)業(yè)發(fā)展動態(tài)及投資方向分析報告
- (2025)國家公務(wù)員考試時事政治必考試題庫與答案
- 2025影視拍攝場地布置合同協(xié)議書
- 全國二卷-2025年高考語文真題作文深度點評與分析
- 2017司考題目及答案
- 2025年D-對羥基苯甘氨酸項目市場調(diào)查研究報告
- 國泰君安補簽風險協(xié)議書
- 防排煙系統(tǒng)設(shè)計畢業(yè)答辯
- 2025年人工智能應(yīng)用技術(shù)職業(yè)資格考試試卷及答案
- 預(yù)防強對流天氣安全教育
- 《運動處方》課件-肥胖癥人群運動處方
評論
0/150
提交評論