第9章_ASP的數(shù)據(jù)綁定與綁定控件_第1頁
第9章_ASP的數(shù)據(jù)綁定與綁定控件_第2頁
第9章_ASP的數(shù)據(jù)綁定與綁定控件_第3頁
第9章_ASP的數(shù)據(jù)綁定與綁定控件_第4頁
第9章_ASP的數(shù)據(jù)綁定與綁定控件_第5頁
已閱讀5頁,還剩63頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第9章章ASP.NET的數(shù)據(jù)綁定與綁定控件的數(shù)據(jù)綁定與綁定控件 內(nèi)容內(nèi)容v數(shù)據(jù)源控件數(shù)據(jù)源控件 v數(shù)據(jù)綁定控件數(shù)據(jù)綁定控件 9.1 數(shù)據(jù)源控件數(shù)據(jù)源控件vSqlDataSource數(shù)據(jù)源控件數(shù)據(jù)源控件 vObjectDataSource數(shù)據(jù)源控件數(shù)據(jù)源控件 vLinqDataSource數(shù)據(jù)源控件數(shù)據(jù)源控件 9.1.1 SqlDataSource數(shù)據(jù)源控件v如果數(shù)據(jù)源存儲在如果數(shù)據(jù)源存儲在SQL Server、SQL Server Express、Oracle、Access、DB2及及MySQL等數(shù)等數(shù)據(jù)庫中,則可以使用據(jù)庫中,則可以使用SqlDataSource控件??丶?。v該控件提供了一

2、個易于使用的向?qū)?,引?dǎo)用戶完該控件提供了一個易于使用的向?qū)В龑?dǎo)用戶完成配置過程。成配置過程。v完成配置后,該控件就可以自動調(diào)用完成配置后,該控件就可以自動調(diào)用ADO.NET中中的類來查詢或更新數(shù)據(jù)庫數(shù)據(jù)。的類來查詢或更新數(shù)據(jù)庫數(shù)據(jù)。SqlDataSource控件的主要屬性控件的主要屬性名名 稱稱說說 明明DeleteCommand獲取或設(shè)置獲取或設(shè)置SqlDataSource控件刪除數(shù)據(jù)庫數(shù)據(jù)所用控件刪除數(shù)據(jù)庫數(shù)據(jù)所用的的SQL命令命令DeleteCommandType獲取或設(shè)置刪除命令類型,可取的值:獲取或設(shè)置刪除命令類型,可取的值:Text和和StoredProduce,分別對應(yīng),分別對

3、應(yīng)SQL命令、存儲過程。命令、存儲過程。DeleteParameters獲取獲取DeleteCommand屬性所使用的參數(shù)的參數(shù)集合屬性所使用的參數(shù)的參數(shù)集合InsertCommand獲取或設(shè)置獲取或設(shè)置SqlDataSource控件插入數(shù)據(jù)庫數(shù)據(jù)所用控件插入數(shù)據(jù)庫數(shù)據(jù)所用的的SQL命令命令I(lǐng)nsertCommandType獲取或設(shè)置插入命令類型,可取的值:獲取或設(shè)置插入命令類型,可取的值:Text和和StoredProduce。InsertParameters獲取獲取InsertCommand屬性所使用的參數(shù)的參數(shù)集合屬性所使用的參數(shù)的參數(shù)集合SelectCommand獲取或設(shè)置獲取或設(shè)置S

4、qlDataSource控件查詢數(shù)據(jù)庫數(shù)據(jù)所用控件查詢數(shù)據(jù)庫數(shù)據(jù)所用的的SQL命令命令SelectCommandType獲取或設(shè)置查詢命令類型,可取的值:獲取或設(shè)置查詢命令類型,可取的值:Text和和StoredProduce。SelectParameters獲取獲取SelectCommand屬性所使用的參數(shù)的參數(shù)集合屬性所使用的參數(shù)的參數(shù)集合UpdateCommand獲取或設(shè)置獲取或設(shè)置SqlDataSource控件更新數(shù)據(jù)庫數(shù)據(jù)所用控件更新數(shù)據(jù)庫數(shù)據(jù)所用的的SQL命令命令UpdateCommandType獲取或設(shè)置更新命令類型,可取的值:獲取或設(shè)置更新命令類型,可取的值:Text和和Sto

5、redProduce。UpdateParameters獲取獲取UpdateCommand屬性所使用的參數(shù)的參數(shù)集合屬性所使用的參數(shù)的參數(shù)集合DataSourceModeSqlDataSource控件檢索數(shù)據(jù)時,是使用控件檢索數(shù)據(jù)時,是使用DataSet還是還是使用使用DataReaderEnableCaching獲取或設(shè)置一個值,該值指示獲取或設(shè)置一個值,該值指示SqlDataSource控件是控件是否啟用數(shù)據(jù)緩存否啟用數(shù)據(jù)緩存ProviderName獲取或設(shè)置獲取或設(shè)置.NET Framework數(shù)據(jù)提供程序的名稱數(shù)據(jù)提供程序的名稱SqlDataSource控件的主要屬性(續(xù))控件的主要屬性

6、(續(xù))1使用使用SqlDataSource控件查詢數(shù)據(jù)控件查詢數(shù)據(jù)【例例9-1】演示如何使用演示如何使用SqlDataSource控件為數(shù)據(jù)控件為數(shù)據(jù)綁定控件綁定控件GridView提供數(shù)據(jù)源。提供數(shù)據(jù)源。參見示例參見示例第第09章章DataBindSqlDataSourceDemo.aspx 2使用參數(shù)過濾數(shù)據(jù)使用參數(shù)過濾數(shù)據(jù)【例例9-2】演示如何按演示如何按MajorId的值來顯示學(xué)生信息。的值來顯示學(xué)生信息。參見示例參見示例第第09章章DataBindSqlDataSourceByParam.aspx 3.使用使用SqlDataSource更新數(shù)據(jù)更新數(shù)據(jù)vSqlDataSource具有

7、具有4個個Command屬性,分別為:屬性,分別為:SelectCommand、UpdateCommand、InsertCommand和和DeleteCommand。使用這。使用這4個個屬性,可以完成查詢、插入、更新和刪除操作。屬性,可以完成查詢、插入、更新和刪除操作?!纠?-3】演示如何使用演示如何使用SqlDataSource控件完成控件完成StuInfo表中數(shù)據(jù)的更新和刪除功能。表中數(shù)據(jù)的更新和刪除功能。參見示例參見示例第第09章章DataBindSqlDataSource_Update.aspx 4.SqlDataSource的事件和方法的事件和方法vSqlDataSource控件的

8、主要事件:控件的主要事件:Selecting:在查詢之前觸發(fā)。:在查詢之前觸發(fā)。Selected:在查詢之后觸發(fā)。:在查詢之后觸發(fā)。Inserting:在插入之前觸發(fā)。:在插入之前觸發(fā)。Inserted:在插入之后觸發(fā)。:在插入之后觸發(fā)。Updating:在更新之前觸發(fā)。:在更新之前觸發(fā)。Updated:在更新之后觸發(fā)。:在更新之后觸發(fā)。Deleting:在刪除之前觸發(fā)。:在刪除之前觸發(fā)。Deleted:在刪除之后觸發(fā)。:在刪除之后觸發(fā)。例如,插入前事件代碼如下:例如,插入前事件代碼如下:protected void SqlDataSource1_Inserting(object sender

9、, SqlDataSourceCommandEventArgs e)v在代碼中,在代碼中,SqlDataSourceCommandEventArgs類型的參數(shù)類型的參數(shù)e具有以下具有以下2個主要屬性:個主要屬性:Cancel屬性屬性:指定是否繼續(xù)執(zhí)行插入操作。:指定是否繼續(xù)執(zhí)行插入操作。Command屬性屬性:可以獲取或設(shè)置數(shù)據(jù)庫命令。:可以獲取或設(shè)置數(shù)據(jù)庫命令。例如數(shù)據(jù)庫連接、例如數(shù)據(jù)庫連接、SQL命令、參數(shù)集合等。命令、參數(shù)集合等。例如,插入后事件代碼如下:例如,插入后事件代碼如下:protected void SqlDataSource1_Inserted(object sender,

10、SqlDataSourceStatusEventArgs e)v在代碼中,在代碼中,SqlDataSourceStatusEventArgs類型的參類型的參數(shù)數(shù)e具有以下幾個主要屬性:具有以下幾個主要屬性:AffectedRows屬性屬性:獲取受數(shù)據(jù)庫操作影響的行數(shù)。:獲取受數(shù)據(jù)庫操作影響的行數(shù)。Command屬性屬性:獲取提交到數(shù)據(jù)庫的數(shù)據(jù)庫命令。:獲取提交到數(shù)據(jù)庫的數(shù)據(jù)庫命令。Exception屬性屬性:獲取數(shù)據(jù)庫的數(shù)據(jù)操作期間引發(fā)的:獲取數(shù)據(jù)庫的數(shù)據(jù)操作期間引發(fā)的任何異常。任何異常。ExceptionHandled屬性屬性:獲取或設(shè)置一個值,該值:獲取或設(shè)置一個值,該值指示是否已處理數(shù)據(jù)

11、庫引發(fā)的異常。指示是否已處理數(shù)據(jù)庫引發(fā)的異常。true表示已處理,表示已處理,false表示未處理。表示未處理?!纠?-4】演示如何使用演示如何使用SqlDataSource完成完成StuInfo表的數(shù)據(jù)插入。表的數(shù)據(jù)插入。參見示例參見示例第第09章章DataBindSqlDataSource_Insert.aspx 9.1.2 ObjectDataSource數(shù)據(jù)源控件vObjectDataSource控件通過提供一種將相關(guān)頁上的控件通過提供一種將相關(guān)頁上的數(shù)據(jù)控件綁定到中間層業(yè)務(wù)對象的方法,為三層結(jié)構(gòu)數(shù)據(jù)控件綁定到中間層業(yè)務(wù)對象的方法,為三層結(jié)構(gòu)提供支持。提供支持。v在不使用擴展代碼的情

12、況下,在不使用擴展代碼的情況下,ObjectDataSource使使用中間層業(yè)務(wù)對象以聲明方式對數(shù)據(jù)執(zhí)行選擇、插入、用中間層業(yè)務(wù)對象以聲明方式對數(shù)據(jù)執(zhí)行選擇、插入、更新、刪除、分頁、排序、緩存和篩選操作。更新、刪除、分頁、排序、緩存和篩選操作。v使用使用ObjectDataSource對象的三層結(jié)構(gòu)示意圖如圖對象的三層結(jié)構(gòu)示意圖如圖所示。所示。 ObjectDataSource控件的常用屬性控件的常用屬性名名 稱稱說說 明明DelectMethod獲取或設(shè)置由獲取或設(shè)置由ObjectDataSource控件調(diào)用控件調(diào)用以刪除數(shù)據(jù)的方法或函數(shù)的名稱以刪除數(shù)據(jù)的方法或函數(shù)的名稱DeletePara

13、meters獲取或設(shè)置參數(shù)集合,該集合包含由獲取或設(shè)置參數(shù)集合,該集合包含由DeleteMethod方法使用的參數(shù)方法使用的參數(shù)InsertMethod獲取或設(shè)置由獲取或設(shè)置由ObjectDataSource控件調(diào)用控件調(diào)用以插入數(shù)據(jù)的方法或函數(shù)的名稱以插入數(shù)據(jù)的方法或函數(shù)的名稱InsertParameters獲取或設(shè)置參數(shù)集合,該集合包含由獲取或設(shè)置參數(shù)集合,該集合包含由InsertMethod方法使用的參數(shù)方法使用的參數(shù)SelectMethod獲取或設(shè)置由獲取或設(shè)置由ObjectDataSource控件調(diào)用控件調(diào)用以查詢數(shù)據(jù)的方法或函數(shù)的名稱以查詢數(shù)據(jù)的方法或函數(shù)的名稱SelectPara

14、meters獲取或設(shè)置參數(shù)集合,該集合包含由獲取或設(shè)置參數(shù)集合,該集合包含由SelectMethod方法使用的參數(shù)方法使用的參數(shù)UpdateMethod獲取或設(shè)置由獲取或設(shè)置由ObjectDataSource控件調(diào)用控件調(diào)用以更新數(shù)據(jù)的方法或函數(shù)的名稱以更新數(shù)據(jù)的方法或函數(shù)的名稱UpdateParameters獲取或設(shè)置參數(shù)集合,該集合包含由獲取或設(shè)置參數(shù)集合,該集合包含由UpdateMethod方法使用的參數(shù)方法使用的參數(shù)FilterExpression獲取或設(shè)置當(dāng)調(diào)用由獲取或設(shè)置當(dāng)調(diào)用由SelectMethod屬性指屬性指定的方法時應(yīng)用的篩選表達式定的方法時應(yīng)用的篩選表達式FilterPa

15、rameters獲取或設(shè)置與獲取或設(shè)置與FilterExpression字符串中的字符串中的任何參數(shù)占位符關(guān)聯(lián)的參數(shù)的集合任何參數(shù)占位符關(guān)聯(lián)的參數(shù)的集合EnableCaching獲取或設(shè)置一個值,該值指示獲取或設(shè)置一個值,該值指示ObjectDataSource控件是否啟用數(shù)據(jù)緩存控件是否啟用數(shù)據(jù)緩存SelectCountMethod 獲取或設(shè)置由獲取或設(shè)置由ObjectDataSource控件調(diào)用控件調(diào)用以檢索行數(shù)的方法或函數(shù)的名稱以檢索行數(shù)的方法或函數(shù)的名稱TypeName獲取或設(shè)置獲取或設(shè)置ObjectDataSource控件要調(diào)用控件要調(diào)用的類的名稱的類的名稱【例例9-5】演示如何通過

16、演示如何通過ObjectDataSource控件來查控件來查詢、更新和刪除詢、更新和刪除Student數(shù)據(jù)庫中的數(shù)據(jù)庫中的StuInfo表的數(shù)表的數(shù)據(jù)。完成功能與據(jù)。完成功能與【例例9-3】相同。相同。參見示例參見示例第第09章章DataBindStuInfoDAL.cs 和和 ObjectDataSourceDemo.aspx 9.1.3 LinqDataSource數(shù)據(jù)源控件數(shù)據(jù)源控件vLinqDataSource控件是控件是ASP.NET 3.5引入的一個新引入的一個新數(shù)據(jù)源控件,它可以使用數(shù)據(jù)源控件,它可以使用.NET3.5的新的新LINQ功能查詢功能查詢應(yīng)用程序中的數(shù)據(jù)對象。應(yīng)用程序

17、中的數(shù)據(jù)對象。 vLinqDataSource控件的用法與控件的用法與SqlDataSource控件控件類似,也是把在控件上設(shè)置的屬性轉(zhuǎn)換成可以在數(shù)據(jù)類似,也是把在控件上設(shè)置的屬性轉(zhuǎn)換成可以在數(shù)據(jù)源上執(zhí)行的操作。源上執(zhí)行的操作。vLinqDataSource控件則把屬性設(shè)置轉(zhuǎn)換為有效的控件則把屬性設(shè)置轉(zhuǎn)換為有效的LINQ查詢,當(dāng)與數(shù)據(jù)庫中的數(shù)據(jù)進行交互時,不會將查詢,當(dāng)與數(shù)據(jù)庫中的數(shù)據(jù)進行交互時,不會將LinqDataSource控件直接連接到數(shù)據(jù)庫,而是與表控件直接連接到數(shù)據(jù)庫,而是與表示數(shù)據(jù)庫和表的實體類進行交互。示數(shù)據(jù)庫和表的實體類進行交互?!纠?-6】演示如何使用演示如何使用Linq

18、DataSource控件。按專控件。按專業(yè)查詢學(xué)生信息,功能與業(yè)查詢學(xué)生信息,功能與【例例9-2】相同。相同。參見示例參見示例第第09章章DataBindStudent.dbml 和和 LinqDataSourceDemo.aspx 9.2 數(shù)據(jù)綁定控件vGridView控件控件v DetailsView控件控件 vFormView控件控件 vListView控件和控件和DataPager控件控件 9.2.1 GridView控件vGridView是一個顯示表格式數(shù)據(jù)的控件,該控件是一個顯示表格式數(shù)據(jù)的控件,該控件是是ASP.NET服務(wù)器控件中功能最強大、最實用的服務(wù)器控件中功能最強大、最實用

19、的一個控件。一個控件。vGridView顯示一個二維表格式數(shù)據(jù),每列表示一顯示一個二維表格式數(shù)據(jù),每列表示一個字段,每行表示一條記錄。個字段,每行表示一條記錄。vGridView控件的主要功能是通過數(shù)據(jù)源控件自動控件的主要功能是通過數(shù)據(jù)源控件自動綁定數(shù)據(jù)源的數(shù)據(jù),然后按照數(shù)據(jù)源中的一行顯綁定數(shù)據(jù)源的數(shù)據(jù),然后按照數(shù)據(jù)源中的一行顯示為輸出表中的一行的規(guī)則將數(shù)據(jù)顯示出來。示為輸出表中的一行的規(guī)則將數(shù)據(jù)顯示出來。v該控件無須編寫任何代碼即可實現(xiàn)選擇、排序、該控件無須編寫任何代碼即可實現(xiàn)選擇、排序、分頁、編輯和刪除功能。分頁、編輯和刪除功能。 GridView控件的常用屬性控件的常用屬性名名 稱稱說說

20、 明明AllowPaging指示是否啟用分頁功能指示是否啟用分頁功能AllowSorting指示是否啟用排序功能指示是否啟用排序功能AutoGenerateColumns指示是否為數(shù)據(jù)源中的每個字段自動創(chuàng)建綁指示是否為數(shù)據(jù)源中的每個字段自動創(chuàng)建綁定字段定字段AutoGenerateDeleteButton指示每個數(shù)據(jù)行是否添加指示每個數(shù)據(jù)行是否添加“刪除刪除”按鈕按鈕AutoGenerateEditButton指示每個數(shù)據(jù)行是否添加指示每個數(shù)據(jù)行是否添加“編輯編輯”按鈕按鈕AutoGenerateSelectButton指示每個數(shù)據(jù)行是否添加指示每個數(shù)據(jù)行是否添加“選擇選擇”按鈕按鈕EditI

21、ndex獲取或設(shè)置要編輯行的索引獲取或設(shè)置要編輯行的索引DataKeyNames獲取或設(shè)置獲取或設(shè)置GridView控件中的主鍵字段的控件中的主鍵字段的名稱。多個主鍵字段間,以逗號隔開名稱。多個主鍵字段間,以逗號隔開DataSource獲取或設(shè)置對象,數(shù)據(jù)綁定控件從該對象中獲取或設(shè)置對象,數(shù)據(jù)綁定控件從該對象中檢索其數(shù)據(jù)項列表檢索其數(shù)據(jù)項列表DataMember當(dāng)數(shù)據(jù)源有多個數(shù)據(jù)項列表時,獲取或設(shè)置當(dāng)數(shù)據(jù)源有多個數(shù)據(jù)項列表時,獲取或設(shè)置數(shù)據(jù)綁定控件綁定到的數(shù)據(jù)列表的名稱數(shù)據(jù)綁定控件綁定到的數(shù)據(jù)列表的名稱DataSourceID獲取或設(shè)置控件的獲取或設(shè)置控件的ID,數(shù)據(jù)綁定控件從該,數(shù)據(jù)綁定控件

22、從該控件中檢索其數(shù)據(jù)項列表控件中檢索其數(shù)據(jù)項列表PageCount獲取在獲取在GridView控件中顯示數(shù)據(jù)源記錄所控件中顯示數(shù)據(jù)源記錄所需的頁數(shù)需的頁數(shù)PageIndex獲取或設(shè)置當(dāng)前顯示頁的索引獲取或設(shè)置當(dāng)前顯示頁的索引PageSize獲取或設(shè)置每頁顯示的記錄數(shù)獲取或設(shè)置每頁顯示的記錄數(shù)SortDirection獲取正在排序列的排序方向獲取正在排序列的排序方向SortExpression獲取與正在排序的列關(guān)聯(lián)的排序表達式獲取與正在排序的列關(guān)聯(lián)的排序表達式1使用使用GridView控件控件啟用啟用GridView控件的編輯和刪除功能;控件的編輯和刪除功能;為為GridView控件指定了控件指

23、定了DataKeyNames屬性屬性 ;為為GridView控件設(shè)置主鍵列為控件設(shè)置主鍵列為StuNo和和Name。DataKeyNames=StuNo , Name“獲取第一個主鍵字段的值,可以按如下代碼進行操作。獲取第一個主鍵字段的值,可以按如下代碼進行操作。object key = GridView1.DataKeys0.Value;2定制定制GridView控件的列控件的列vGridView控件中的數(shù)據(jù)常常不是簡單的文本數(shù)據(jù),控件中的數(shù)據(jù)常常不是簡單的文本數(shù)據(jù),而是要使用其它類型的控件顯示的數(shù)據(jù),例如使用而是要使用其它類型的控件顯示的數(shù)據(jù),例如使用復(fù)選框、圖片框等控件顯示數(shù)據(jù),或者根本

24、不需要復(fù)選框、圖片框等控件顯示數(shù)據(jù),或者根本不需要顯示的數(shù)據(jù)。顯示的數(shù)據(jù)。v在在GridView中提供了非常豐富的列的顯示格式。中提供了非常豐富的列的顯示格式。 GridView控件的列類型控件的列類型列字段類型列字段類型說說 明明BoundField顯示數(shù)據(jù)源中某個字段的值。顯示數(shù)據(jù)源中某個字段的值。GridView控件的默認(rèn)列類控件的默認(rèn)列類型型ButtonField為為GridView控件中的每個項顯示一個命令按鈕。這樣可控件中的每個項顯示一個命令按鈕。這樣可以創(chuàng)建一列自定義按鈕。以創(chuàng)建一列自定義按鈕。CheckBoxField為為GridView控件中的每一項顯示一個復(fù)選框。這種列字控

25、件中的每一項顯示一個復(fù)選框。這種列字段類型一般用于顯示帶布爾值的字段段類型一般用于顯示帶布爾值的字段CommandField顯示用來執(zhí)行選擇、編輯或刪除操作的命令按鈕顯示用來執(zhí)行選擇、編輯或刪除操作的命令按鈕HyperLinkField將數(shù)據(jù)源中一個字段的值顯示為超鏈接。這個列字段類將數(shù)據(jù)源中一個字段的值顯示為超鏈接。這個列字段類型可以把另一個字段綁定到超鏈接的型可以把另一個字段綁定到超鏈接的URL上上ImageField為為GridView控件中的每一項顯示一個圖像控件中的每一項顯示一個圖像TemplateField根據(jù)指定的模板為根據(jù)指定的模板為GridView控件中的每一項顯示用戶定控件

26、中的每一項顯示用戶定義的內(nèi)容。此列字段類型可以創(chuàng)建定制的列字段義的內(nèi)容。此列字段類型可以創(chuàng)建定制的列字段vBoundField是默認(rèn)的列類型,該列將數(shù)據(jù)庫中的是默認(rèn)的列類型,該列將數(shù)據(jù)庫中的字段顯示為純文本,默認(rèn)情況下,字段顯示為純文本,默認(rèn)情況下,Visual Studio 2010將為數(shù)據(jù)源中的列生成這種字段類型,將為數(shù)據(jù)源中的列生成這種字段類型,Visual Studio 2010提供了一個可視化的列字段編輯器,提供了一個可視化的列字段編輯器,大大簡化了創(chuàng)建列的工作。大大簡化了創(chuàng)建列的工作。 BoundField字段的常用屬性字段的常用屬性屬屬 性性說說 明明DataField指定列將要

27、綁定字段的名稱,如果是數(shù)據(jù)表則為數(shù)指定列將要綁定字段的名稱,如果是數(shù)據(jù)表則為數(shù)據(jù)表的字段,如果是對象,則為該對象的屬性據(jù)表的字段,如果是對象,則為該對象的屬性DataFormatString用于格式化用于格式化DataField顯示的格式化字符串。例如如顯示的格式化字符串。例如如果需要指定四位小數(shù),則格式化字符串為果需要指定四位小數(shù),則格式化字符串為0:F4;如果需要指定為日期,則格式字符串為如果需要指定為日期,則格式字符串為0:d。ApplyFormatInEditMode 是否將是否將DataFormatString設(shè)置的格式應(yīng)用到編輯模式設(shè)置的格式應(yīng)用到編輯模式HeaderText、Fo

28、oterText和和HeaderImageUrl前兩個用于設(shè)置列頭和列尾區(qū)顯示的文本。前兩個用于設(shè)置列頭和列尾區(qū)顯示的文本。HeaderText屬性通常用于顯示列名稱。列尾可以顯屬性通常用于顯示列名稱。列尾可以顯示一些統(tǒng)計信息示一些統(tǒng)計信息ReadOnly列是否只讀,默認(rèn)情況下,主鍵字段是只讀,只讀列是否只讀,默認(rèn)情況下,主鍵字段是只讀,只讀字段將不能進入編輯模式字段將不能進入編輯模式Visible列是否可見。如果設(shè)置為列是否可見。如果設(shè)置為false,則不產(chǎn)生任何,則不產(chǎn)生任何HTML輸出輸出SortExpression指定一個用于排序的表達式指定一個用于排序的表達式HtmlEncode默認(rèn)

29、值為默認(rèn)值為true,指定是否對顯示的文本內(nèi)容進,指定是否對顯示的文本內(nèi)容進行行HTML編碼編碼NullDisplayText當(dāng)列為空值時,將顯示的文本當(dāng)列為空值時,將顯示的文本ConvertEmptyStringToNull如果設(shè)為如果設(shè)為true,當(dāng)提交編輯時,所有的空字符,當(dāng)提交編輯時,所有的空字符將被轉(zhuǎn)換為將被轉(zhuǎn)換為nullControlStyle、HeaderStyle、FooterStyle和和ItemStyle用于設(shè)置列的呈現(xiàn)樣式用于設(shè)置列的呈現(xiàn)樣式【例例9-7】演示如何定制演示如何定制GridView控件的列??丶牧?。參見示例參見示例第第09章章DataBindGridVie

30、wDemo.aspx 3定制定制GridView的模板列的模板列 uGridView控件中有一個重要的列類型控件中有一個重要的列類型TemplateField,它可以使用模板完全定制列的內(nèi)容。當(dāng)使用標(biāo)準(zhǔn)的列它可以使用模板完全定制列的內(nèi)容。當(dāng)使用標(biāo)準(zhǔn)的列不能滿足顯示要求時,例如希望在編輯狀態(tài)下,能使不能滿足顯示要求時,例如希望在編輯狀態(tài)下,能使用下拉列表框選擇一個專業(yè),使用單選列表選擇性別用下拉列表框選擇一個專業(yè),使用單選列表選擇性別,避免輸入。此時可以考慮使用模板列。,避免輸入。此時可以考慮使用模板列。 GridView控件的模板列控件的模板列模模 板板說說 明明AlternatingItem

31、Template 為交替項指定要顯示的內(nèi)容為交替項指定要顯示的內(nèi)容EditItemTemplate為處于編輯模式中的項指定要顯示為處于編輯模式中的項指定要顯示的內(nèi)容的內(nèi)容FooterTemplate為對象的腳注部分指定要顯示的內(nèi)為對象的腳注部分指定要顯示的內(nèi)容容HeaderTemplate為標(biāo)頭部分指定要顯示的內(nèi)容為標(biāo)頭部分指定要顯示的內(nèi)容InsertItemTemplate為處于插入模式中的項指定要顯示為處于插入模式中的項指定要顯示的內(nèi)容。只有的內(nèi)容。只有DetailsView控件支持控件支持該模板該模板ItemTemplate為為TemplateField對象中的項指定要對象中的項指定要顯

32、示的內(nèi)容顯示的內(nèi)容【例例9-8】演示模板列的使用。本例主要將演示模板列的使用。本例主要將GridViewDemo.aspx頁面中的頁面中的GridView1的的“性別性別”列和列和“專業(yè)專業(yè)”列轉(zhuǎn)換為模板列。列轉(zhuǎn)換為模板列。參見示例參見示例第第09章章DataBindGridViewDemo.aspx 4. GridView控件事件控件事件nGridView控件提供可很多事件,可以使用這些事件定制控件提供可很多事件,可以使用這些事件定制GridView控件的外觀和行為??丶耐庥^和行為。n下面將下面將GridView控件的事件分為控件的事件分為3大類。大類。控件呈現(xiàn)事件,在控件呈現(xiàn)事件,在Gr

33、idView顯示其數(shù)據(jù)行時觸發(fā)??煞譃轱@示其數(shù)據(jù)行時觸發(fā)??煞譃槿缦聨追N。如下幾種。DataBinding:GridView綁定到數(shù)據(jù)源前觸發(fā)。綁定到數(shù)據(jù)源前觸發(fā)。DataBound:GridView綁定到數(shù)據(jù)源后觸發(fā)。綁定到數(shù)據(jù)源后觸發(fā)。RowCreated:GridView中的行被創(chuàng)建后觸發(fā)。中的行被創(chuàng)建后觸發(fā)。RowDataBound:GridView中的每行綁定數(shù)據(jù)后觸發(fā)。中的每行綁定數(shù)據(jù)后觸發(fā)。編輯記錄事件,分為如下幾種。編輯記錄事件,分為如下幾種。RowCommand:單擊單擊GridView控件內(nèi)的按鈕控件內(nèi)的按鈕時觸發(fā)。時觸發(fā)。RowUpdating:在在GridView更新記

34、錄前觸發(fā)。更新記錄前觸發(fā)。RowUpdated:在在GridView更新記錄后觸發(fā)。更新記錄后觸發(fā)。RowDeleting:在在GridView刪除記錄前觸發(fā)。刪除記錄前觸發(fā)。RowDeleted:在在GridView刪除記錄后觸發(fā)。刪除記錄后觸發(fā)。RowCancelingEdit:取消更新記錄時觸發(fā)。取消更新記錄時觸發(fā)。選擇、排序、分頁事件,分為如下幾種。選擇、排序、分頁事件,分為如下幾種。PageIndexChanging:在當(dāng)前頁被改變前觸發(fā)。在當(dāng)前頁被改變前觸發(fā)。PageIndexChanged:在當(dāng)前頁被改變后觸發(fā)。在當(dāng)前頁被改變后觸發(fā)。Sorting:在排序前觸發(fā)。在排序前觸發(fā)。S

35、orted:在排序后觸發(fā)。在排序后觸發(fā)。SelectedIndexChanging:在行被選擇之前觸發(fā)。在行被選擇之前觸發(fā)。SelectedIndexChanged:在行被選擇后觸發(fā)。在行被選擇后觸發(fā)?!纠?-9】演示如何通過事件定制演示如何通過事件定制GridView控件顯示控件顯示的外觀。功能要求:的外觀。功能要求:顯示學(xué)生信息表,并將所有女生的信息標(biāo)為紅色。顯示學(xué)生信息表,并將所有女生的信息標(biāo)為紅色。在不同記錄間移動鼠標(biāo)時,鼠標(biāo)當(dāng)前位置高亮突出在不同記錄間移動鼠標(biāo)時,鼠標(biāo)當(dāng)前位置高亮突出顯示。顯示。參見示例參見示例第第09章章DataBindGridViewDemo.aspx 5Gri

36、dView控件的選擇功能控件的選擇功能通過通過GridView控件的控件的SelectedRowStyle屬性設(shè)置選中的效果。屬性設(shè)置選中的效果。單擊選擇按鈕時,頁面回傳,觸發(fā)單擊選擇按鈕時,頁面回傳,觸發(fā)GridView控件的控件的SelectedIndexChanging事件和事件和SelectedIndexChanged事件。在這些事件中可以事件。在這些事件中可以通過如下屬性獲取選擇值。通過如下屬性獲取選擇值。SelectedIndex屬性:屬性:GridView控件所選中行的控件所選中行的索引號。索引號。SelectedDataKey屬性:屬性:獲取獲取DataKey對象,該對象,該對

37、象包含對象包含GridView控件中選中行的所有數(shù)據(jù)鍵值。控件中選中行的所有數(shù)據(jù)鍵值。SelectedValue屬性:屬性:獲取獲取GridView控件中選中控件中選中行的數(shù)據(jù)鍵值。行的數(shù)據(jù)鍵值。SelectedRow屬性:屬性:獲取對獲取對GridView控件中選中控件中選中的行。的行?!纠?-10】演示演示GridView控件的選擇功能。當(dāng)用戶選控件的選擇功能。當(dāng)用戶選中某條記錄時,在一個中某條記錄時,在一個Label控件中顯示出該選中控件中顯示出該選中記錄的信息。記錄的信息。參見示例參見示例第第09章章DataBindGridViewDemo.aspx 6GridView控件的分頁和排

38、序功能控件的分頁和排序功能在在GridView控件的任務(wù)面板中選擇控件的任務(wù)面板中選擇“啟用排序啟用排序”或或設(shè)置設(shè)置GridView控件的控件的AllowSorting屬性為屬性為true,就能實,就能實現(xiàn)現(xiàn)GridView控件的排序功能??丶呐判蚬δ堋?v在在GridView控件的任務(wù)面板中選擇控件的任務(wù)面板中選擇“啟用分頁啟用分頁”或設(shè)置或設(shè)置GridView控件的控件的AllowPaging屬性為屬性為true,就能實現(xiàn)就能實現(xiàn)GridView控件的分頁功能??丶姆猪摴δ?。v通過設(shè)置通過設(shè)置PageSize屬性控制每頁顯示的記錄數(shù),屬性控制每頁顯示的記錄數(shù),默認(rèn)每頁顯示默認(rèn)每頁顯示

39、10條記錄。條記錄。 9.2.2 DetailsView控件vGridView控件適合顯示多行數(shù)據(jù)。在某些時候用戶控件適合顯示多行數(shù)據(jù)。在某些時候用戶希望一次只看到某一行中所包含數(shù)據(jù)字段的詳細(xì)數(shù)希望一次只看到某一行中所包含數(shù)據(jù)字段的詳細(xì)數(shù)據(jù),即在頁面上一次只顯示一條記錄。據(jù),即在頁面上一次只顯示一條記錄。 vDetailsView控件的主要功能是以表格形式顯示和處控件的主要功能是以表格形式顯示和處理來自數(shù)據(jù)源的單條數(shù)據(jù)記錄,其表格只包含兩個理來自數(shù)據(jù)源的單條數(shù)據(jù)記錄,其表格只包含兩個數(shù)據(jù)列。一個數(shù)據(jù)列逐行顯示數(shù)據(jù)列名,另一個數(shù)數(shù)據(jù)列。一個數(shù)據(jù)列逐行顯示數(shù)據(jù)列名,另一個數(shù)據(jù)列顯示與對應(yīng)列名相關(guān)的

40、詳細(xì)數(shù)據(jù)值。據(jù)列顯示與對應(yīng)列名相關(guān)的詳細(xì)數(shù)據(jù)值。vDetailsView控件提供了與控件提供了與GridView相同的許多數(shù)相同的許多數(shù)據(jù)操作和顯示功能,可以對數(shù)據(jù)進行分頁、更新、據(jù)操作和顯示功能,可以對數(shù)據(jù)進行分頁、更新、插入和刪除。插入和刪除。vDetailView有一個有一個DefaultMode屬性,可以控制默屬性,可以控制默認(rèn)的顯示模式,該屬性有認(rèn)的顯示模式,該屬性有3個可選值。個可選值。DetailsViewMode.Edit:編輯模式,用戶可以:編輯模式,用戶可以更新記錄的值。更新記錄的值。DetailsViewMode.Insert:插入模式,用戶可以:插入模式,用戶可以向數(shù)據(jù)

41、源中添加新記錄。向數(shù)據(jù)源中添加新記錄。DetailsViewMode.ReadOnly:只讀模式,這是:只讀模式,這是默認(rèn)的顯示模式。默認(rèn)的顯示模式。vDetailView控件提供了與切換模式相關(guān)的兩個事件控件提供了與切換模式相關(guān)的兩個事件:ModeChanging事件事件:在模式切換前觸發(fā)在模式切換前觸發(fā);ModeChanged事件事件:在模式切換后觸發(fā)。在模式切換后觸發(fā)。vDetailView控件提供了控件提供了ChangeMode方法,用來改方法,用來改變變DetailView的顯示模式。將的顯示模式。將DetailView控件的模式控件的模式改為編輯模式的代碼如下:改為編輯模式的代碼如

42、下:DetailsView1.ChangeMode(DetailsViewMode.Edit);可以在可以在DetailView控件外放置控制控件外放置控制DetailView顯示模顯示模式的按鈕,當(dāng)單擊不同的模式按鈕時,調(diào)用式的按鈕,當(dāng)單擊不同的模式按鈕時,調(diào)用ChangeMode方法進行模式切換。方法進行模式切換。1使用使用DetailsView控件控件【例例9-11】演示如何通過演示如何通過DetailsView控件顯示控件顯示Student數(shù)據(jù)庫中數(shù)據(jù)庫中StuInfo表的信息。表的信息。參見示例參見示例第第09章章DataBindDetailsViewDemo.aspx 2定制定制D

43、etailsView控件的列控件的列v與與GridView控件一樣,控件一樣,DetailsView控件也允許指控件也允許指定要顯示的列。定要顯示的列。 【例例9-12】演示如何定制演示如何定制DetailsView控件的列??丶牧?。參見示例參見示例第第09章章DataBindDetailsViewDemo.aspx 4定制定制DetailsView的模板列的模板列vDetailsView控件設(shè)置模板列的方法與控件設(shè)置模板列的方法與GridView控控件相同。件相同。【例例9-14】演示如何定制演示如何定制DetailsView的模板列。為的模板列。為DetailsView控件定制控件定制E

44、ditItemTemplate和和InsertItemTemplate。 (a)編輯狀態(tài))編輯狀態(tài)(b)插入狀態(tài))插入狀態(tài)參見示例參見示例第第09章章DataBindDetailsViewDemo.aspx 5 GridView和和DetailsView控件的聯(lián)合使用控件的聯(lián)合使用v最常使用最常使用DetailsView控件的地方是主從表,通常用控件的地方是主從表,通常用主表來顯示一些基本信息,而從表則顯示詳細(xì)信息。主表來顯示一些基本信息,而從表則顯示詳細(xì)信息?!纠?-15】演示如何使用演示如何使用GridView控件顯示控件顯示Student數(shù)數(shù)據(jù)庫中據(jù)庫中StuInfo表的基本信息,表的

45、基本信息,DetailsView控件顯示控件顯示GridView控件中選中行的詳細(xì)的信息??丶羞x中行的詳細(xì)的信息。參見示例參見示例第第09章章DataBindDetailsViewDemo.aspx 9.2.3 FormView控件vFormView控件與控件與DetailsView功能相同,也是顯示功能相同,也是顯示數(shù)據(jù)源控件中的一個數(shù)據(jù)項,并可以添加、編輯和數(shù)據(jù)源控件中的一個數(shù)據(jù)項,并可以添加、編輯和刪除數(shù)據(jù)。刪除數(shù)據(jù)。v與與DetailsView控件的一個明顯區(qū)別是,控件的一個明顯區(qū)別是,F(xiàn)ormView控件完全基于模板,提供了更多的布局控制選項??丶耆谀0澹峁┝烁嗟牟季挚刂?/p>

46、選項。v利用利用FormView控件操作數(shù)據(jù)源數(shù)據(jù)時,需要為其控件操作數(shù)據(jù)源數(shù)據(jù)時,需要為其定制不同的模板,例如為支持插入記錄的定制不同的模板,例如為支持插入記錄的FormView控件定義插入項模板等??丶x插入項模板等。 FormView控件的常用模板控件的常用模板模板名稱模板名稱說說 明明EditItemTemplate定義數(shù)據(jù)行在定義數(shù)據(jù)行在FormView控件處于編輯模式時的內(nèi)容,通控件處于編輯模式時的內(nèi)容,通常包含用戶用來編輯現(xiàn)有記錄的輸入控件和命令按鈕常包含用戶用來編輯現(xiàn)有記錄的輸入控件和命令按鈕EmptyDataTemplate定義在定義在FromView控件綁定到不包含任何記

47、錄的數(shù)據(jù)源時控件綁定到不包含任何記錄的數(shù)據(jù)源時所顯示的空數(shù)據(jù)行的內(nèi)容,通常包含用來警告用戶數(shù)據(jù)源所顯示的空數(shù)據(jù)行的內(nèi)容,通常包含用來警告用戶數(shù)據(jù)源不包含任何記錄。不包含任何記錄。FooterTemplate定義腳注行的內(nèi)容,此模板通常包含任何要在腳注行中顯定義腳注行的內(nèi)容,此模板通常包含任何要在腳注行中顯示的附加內(nèi)容示的附加內(nèi)容HeaderTemplate定義標(biāo)題行的內(nèi)容,此模板通常包含任何要在標(biāo)題行中顯定義標(biāo)題行的內(nèi)容,此模板通常包含任何要在標(biāo)題行中顯示的附加內(nèi)容示的附加內(nèi)容ItemTemplate定義數(shù)據(jù)行在定義數(shù)據(jù)行在FormView控件處于只讀模式時的內(nèi)容,通控件處于只讀模式時的內(nèi)容,

48、通常包含用來顯示現(xiàn)有記錄值的內(nèi)容常包含用來顯示現(xiàn)有記錄值的內(nèi)容InsertItemTemplate定義數(shù)據(jù)行在定義數(shù)據(jù)行在FormView控件處于插入模式時的內(nèi)容,通控件處于插入模式時的內(nèi)容,通常包含用戶用來添加新記錄的輸入控件和命令按鈕常包含用戶用來添加新記錄的輸入控件和命令按鈕PagerTemplate定義在啟用分頁功能時所顯示的頁導(dǎo)航行的內(nèi)容,通常包定義在啟用分頁功能時所顯示的頁導(dǎo)航行的內(nèi)容,通常包含用戶可以用來導(dǎo)航至另一個記錄的控件含用戶可以用來導(dǎo)航至另一個記錄的控件vFormView控件不提供自動生成命令按鈕以執(zhí)行更控件不提供自動生成命令按鈕以執(zhí)行更新、刪除或插入操作的方法。必須手動

49、將這些按鈕新、刪除或插入操作的方法。必須手動將這些按鈕添加在不同的模板中。添加在不同的模板中。FormView控件通過識別按控件通過識別按鈕的鈕的CommandName屬性,來執(zhí)行不同的操作。屬性,來執(zhí)行不同的操作。 FormView控件識別的命令按鈕控件識別的命令按鈕按鈕按鈕CommandName值值說說 明明取消取消Cancel在更新或插入操作中,用于取消操作并放棄用戶在更新或插入操作中,用于取消操作并放棄用戶輸入輸入刪除刪除Delete刪除當(dāng)前記錄,引發(fā)刪除當(dāng)前記錄,引發(fā)ItemDeleting和和ItemDeleted事件事件編輯編輯Edit進入編輯模式進入編輯模式插入插入Insert

50、插入用戶輸入的數(shù)據(jù),引發(fā)插入用戶輸入的數(shù)據(jù),引發(fā)ItemInserting和和ItemInserted事件事件新建新建New進入插入模式進入插入模式頁頁Page表示頁導(dǎo)航行中執(zhí)行分頁的按鈕,若要指定分表示頁導(dǎo)航行中執(zhí)行分頁的按鈕,若要指定分頁操作,必須將該按鈕的頁操作,必須將該按鈕的CommandArgument屬性設(shè)置為屬性設(shè)置為“Next”、“Prev”、“First”、“Last”或要導(dǎo)航至的目標(biāo)頁的索引。引發(fā)或要導(dǎo)航至的目標(biāo)頁的索引。引發(fā)PageIndexChanging和和PageIndexChanged事件事件更新更新Update更新當(dāng)前記錄,引發(fā)更新當(dāng)前記錄,引發(fā)ItemUpda

51、ting和和ItemUpdated事件事件【例例9-16】演示如何通過綁定演示如何通過綁定FormView控件顯示和控件顯示和編輯數(shù)據(jù)。要求顯示和編輯編輯數(shù)據(jù)。要求顯示和編輯Student數(shù)據(jù)庫中數(shù)據(jù)庫中StuInfo表的記錄。表的記錄。編輯編輯EditTemplate模板模板 FormViewDemo.aspx頁面運行效果頁面運行效果 參見示例參見示例第第09章章DataBindFormViewDemo.aspx 9.2.4 ListView控件和控件和DataPager控件控件vListView集成了集成了GridView、DataList、Repeater、DetailsView和和Fo

52、rmView控件的所有功能,可以在控件的所有功能,可以在頁面上自定義多條記錄的顯示布局頁面上自定義多條記錄的顯示布局 。vListView控件允許用戶編輯、插入和刪除數(shù)據(jù),以控件允許用戶編輯、插入和刪除數(shù)據(jù),以及對數(shù)據(jù)進行排序和分頁及對數(shù)據(jù)進行排序和分頁 。vListView控件是一個相當(dāng)靈活的數(shù)據(jù)綁定控件,該控件是一個相當(dāng)靈活的數(shù)據(jù)綁定控件,該控件不具有默認(rèn)的格式呈現(xiàn),所有格式需要進行??丶痪哂心J(rèn)的格式呈現(xiàn),所有格式需要進行模板設(shè)計實現(xiàn)。板設(shè)計實現(xiàn)。 ListView控件包含以下控件包含以下11個模板。個模板。1. LayoutTemplate:定義控件的主要布局的根模板。它包含一個:定

53、義控件的主要布局的根模板。它包含一個占位符對象,例如表行占位符對象,例如表行(tr)、div或或span元素。此元素將由元素。此元素將由ItemTemplate模板或模板或GroupTemplate模板中定義的內(nèi)容替換。它模板中定義的內(nèi)容替換。它還可能包含一個還可能包含一個DataPager對象。對象。2. ItemTemplate:定義為各個項顯示的數(shù)據(jù)綁定內(nèi)容。:定義為各個項顯示的數(shù)據(jù)綁定內(nèi)容。3. ItemSeparatorTemplate:定義在各個項之間呈現(xiàn)的內(nèi)容。:定義在各個項之間呈現(xiàn)的內(nèi)容。4. GroupTemplate:定義組布局的內(nèi)容。它包含一個占位符對象:定義組布局的內(nèi)容

54、。它包含一個占位符對象,例如表單元格,例如表單元格(td)、div或或span。該對象將由其它模板(例如。該對象將由其它模板(例如ItemTemplate和和EmptyItemTemplate模板)中定義的內(nèi)容替換。模板)中定義的內(nèi)容替換。5. GroupSeparatorTemplate:定義在項組之間呈現(xiàn)的內(nèi)容。:定義在項組之間呈現(xiàn)的內(nèi)容。6.EmptyItemTemplate:定義在使用:定義在使用GroupTemplate模板時為空項模板時為空項呈現(xiàn)的內(nèi)容。例如,如果將呈現(xiàn)的內(nèi)容。例如,如果將GroupItemCount屬性設(shè)置為屬性設(shè)置為5,而,而從數(shù)據(jù)源返回的總項數(shù)為從數(shù)據(jù)源返回的

55、總項數(shù)為8,則,則ListView控件顯示的最后一行數(shù)控件顯示的最后一行數(shù)據(jù)將包含據(jù)將包含ItemTemplate模板指定的模板指定的3個項以及個項以及EmptyItemTemplate模板指定的模板指定的2個項。個項。7.EmptyDataTemplate:定義在數(shù)據(jù)源未返回數(shù)據(jù)時要呈現(xiàn)的內(nèi):定義在數(shù)據(jù)源未返回數(shù)據(jù)時要呈現(xiàn)的內(nèi)容。容。8.SelectedItemTemplate:定義所選項呈現(xiàn)的內(nèi)容,用以區(qū)分所:定義所選項呈現(xiàn)的內(nèi)容,用以區(qū)分所選數(shù)據(jù)項與其它項。選數(shù)據(jù)項與其它項。9.AlternatingItemTemplate:定義交替項呈現(xiàn)的內(nèi)容,以便區(qū)分:定義交替項呈現(xiàn)的內(nèi)容,以便區(qū)分連續(xù)項。連續(xù)項。

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論