国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
一步一步學(xué)會(huì)在ASP.NET 4數(shù)據(jù)綁定控件中啟用動(dòng)態(tài)數(shù)據(jù)(翻譯) - longgel -...

一步一步學(xué)會(huì)在ASP.NET 4數(shù)據(jù)綁定控件中啟用動(dòng)態(tài)數(shù)據(jù)(翻譯)

連續(xù)一個(gè)星期翻譯了好幾篇在MSDN上本人學(xué)習(xí)的相關(guān)內(nèi)容,我也能希望將所有的asp.net 4中的一些新特性的使用方法學(xué)會(huì),然后同時(shí)也盡早的翻譯給大家,因?yàn)槲椰F(xiàn)在也還沒(méi)看到MSDN這方面的中文文檔。

源碼下載 (包含VB和C#)

創(chuàng)建 ASP.NET Web 應(yīng)用程序并添加數(shù)據(jù)模型


創(chuàng)建 ASP.NET Web 應(yīng)用程序
  1. 啟動(dòng) Visual Studio。

  2. 在“File”菜單中單擊“New”,再單擊“Project”。

    將顯示“New Project”對(duì)話框。

  3. 在“Installed Templates”下的左側(cè)窗格中,選擇“Visual C#”,然后選擇“Web”。

  4. 在“Installed Templates”下,選擇“ASP.NET Web 應(yīng)用程序”。

  5. 在“Location”框中輸入要保存 Web 應(yīng)用程序的文件夾的名稱(chēng)。例如,輸入文件夾名稱(chēng)“C:\WebApplications\EnableDynamicData”。

  6. 單擊“OK”。

下一步是添加數(shù)據(jù)庫(kù)。

向 Web 應(yīng)用程序中添加數(shù)據(jù)庫(kù)
  1. 在“Solution Explorer”中,右擊 App_Data 文件夾,然后單擊“Add Exiting”。

  2. 在“Add Exiting”對(duì)話框中,輸入 AdventureWorksLT 數(shù)據(jù)庫(kù)文件 (AdventureWorksLT.mdf) 的存儲(chǔ)位置,然后單擊“Add”。

您現(xiàn)在可以創(chuàng)建一個(gè)數(shù)據(jù)模型,其中包含表示數(shù)據(jù)庫(kù)表的類(lèi)。動(dòng)態(tài)數(shù)據(jù)使用這些類(lèi)來(lái)實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的交互。在本演練中,您將使用 LINQ-to-SQL 數(shù)據(jù)模型。但是,可以改用 ADO.NET Entity Framework 數(shù)據(jù)模型。(您還可以在不使用任何數(shù)據(jù)模型的情況下手動(dòng)創(chuàng)建這些類(lèi),但是本次演示中不顯示這種情況。)

創(chuàng)建數(shù)據(jù)模型
  1. 在“Solution Explorer”中右擊項(xiàng)目名稱(chēng),然后單擊“Add”。

  2. 單擊“New Item”。

  3. 在“Installed Templates”下的左側(cè)窗格中,選擇“Data”。

  4. 在中間窗格中,單擊“LINQ to SQL Classes”。

  5. 在“Name”框中,輸入數(shù)據(jù)庫(kù)模型的名稱(chēng) AdventureWorksLT.dbml。

  6. 單擊“Add”。

    此時(shí)將顯示“對(duì)象關(guān)系設(shè)計(jì)器”。有關(guān)更多信息,請(qǐng)參見(jiàn)對(duì)象關(guān)系設(shè)計(jì)器(O/R 設(shè)計(jì)器)。

  7. 在對(duì)象關(guān)系設(shè)計(jì)器(Object Relational Designer)中,單擊“Server Explorer”鏈接。

  8. 在“Server Explorer”中,在“Data Connections”下面,展開(kāi)“AdventureWorksLT_Data.mdf”節(jié)點(diǎn),然后展開(kāi)“Tables”節(jié)點(diǎn)。

  9. 選擇所有表并將其拖到對(duì)象關(guān)系設(shè)計(jì)器窗口中。

  10. 在顯示的關(guān)系圖中,選擇 SalesOrdersDetail 表的所有列。

  11. 在相關(guān)的“Properties”窗口中,將“更新檢查”屬性設(shè)置為“Never”。

  12. 關(guān)閉“Server Explorer”。

  13. 保存并關(guān)閉 AdventureWorksLT.dbml 文件。

    您已經(jīng)創(chuàng)建了一個(gè)表示 AdventureWorksLT 數(shù)據(jù)庫(kù)的數(shù)據(jù)模型。

創(chuàng)建自定義邏輯以訪問(wèn)指定表


下一步是創(chuàng)建能讓?xiě)?yīng)用程序訪問(wèn)并處理數(shù)據(jù)庫(kù)信息的代碼。(在動(dòng)態(tài)數(shù)據(jù) Web 應(yīng)用程序中,將會(huì)自動(dòng)生成此邏輯。但本演練演示如何創(chuàng)建此代碼以用于 ObjectDataSource控件。)對(duì)于本演練,自定義邏輯由一些方法組成,這些方法列出并修改 SalesOrderDetail 表中包含的數(shù)據(jù)字段。

創(chuàng)建自定義邏輯以訪問(wèn)指定表
  1. 在“Solution Explorer”中右擊項(xiàng)目名稱(chēng),然后單擊“Add”。

  2. 單擊“New Item”。

  3. 在“Installed Templates”下的左側(cè)窗格中,單擊“Code”。

  4. 在中心窗格中,單擊“Code File”。

  5. 在“Name”框中輸入ProcessingOrderDetails.cs,然后單擊“Add”。

  6. 將下面的代碼復(fù)制到新類(lèi)中,這樣會(huì)替換文件中的所有已有代碼。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace EnableDynamicData
    {
      
    public class ProcessingOrderDetails
      {
        
    public IEnumerable<SalesOrderDetail> GetSalesOrderDetails()
        {
          
    using (AdventureWorksLTDataContext db = 
             
    new AdventureWorksLTDataContext())
          {
            
    return db.SalesOrderDetails.ToList();
           }
        }

        
    public void Update(SalesOrderDetail p)
        {
          
    using (AdventureWorksLTDataContext db = 
            
    new AdventureWorksLTDataContext())
            {
              db.SalesOrderDetails.Attach(p, 
    true);
              db.SubmitChanges();
            }
        }
      }
    }


     

    該類(lèi)包含下列方法:GetSalesOrderDetails.該方法返回 SalesOrderDetail 表中的數(shù)據(jù)行。該方法實(shí)例化數(shù)據(jù)庫(kù)上下文對(duì)象,然后使用 SalesOrderDetails 類(lèi)來(lái)獲取行的集合。

    Update.該方法更改 SalesOrderDetail 表中的列值。該方法實(shí)例化數(shù)據(jù)庫(kù)上下文對(duì)象,然后將 SalesOrderDetail 表中的更改提交到數(shù)據(jù)庫(kù)。

  7. 保存并關(guān)閉文件。

  8. 從“Build”菜單中,單擊生成 EnableDynamicData(或者用于 Web 應(yīng)用程序的名稱(chēng))以生成解決方案。

    這樣會(huì)使業(yè)務(wù)對(duì)象可用于下一個(gè)過(guò)程。

對(duì)數(shù)據(jù)綁定控件啟用動(dòng)態(tài)數(shù)據(jù)


本部分演示如何配置動(dòng)態(tài)綁定控件,以使它可以使用頁(yè)模板和驗(yàn)證等從數(shù)據(jù)庫(kù)架構(gòu)或從自定義元數(shù)據(jù)中推斷的功能。您的應(yīng)用程序僅需啟用動(dòng)態(tài)數(shù)據(jù)即可使用這些功能。該控件用于顯示和更改 SalesOrderDetail 表中包含的值。

第一步是配置數(shù)據(jù)源控件,用以與數(shù)據(jù)庫(kù)交互。

添加網(wǎng)頁(yè)和數(shù)據(jù)源控件
  1. 在“Solution Explorer”中右擊項(xiàng)目名稱(chēng),然后單擊“Add”。

  2. 單擊“new Item”。

  3. 在“已安裝的模板”下的左側(cè)窗格中,單擊“Web”。

  4. 在中心窗格中,單擊“Web Form”。

  5. 在“Name”框中,輸入 EnableDynamicData.aspx,然后單擊“添加”。

  6. 切換到“Design”視圖。

  7. 從“toolbox”的“data”組中,將一個(gè)ObjectDataSource 控件添加到該頁(yè)上。

  8. 在“ObjectDataSource Tasks”菜單上,單擊“Configure Data Source”。

    此時(shí)將顯示“Choose a Business Object”對(duì)話框。

  9. 在“Choose your Business Object”列表中,選擇您在前一過(guò)程中創(chuàng)建的 ProcessingOrderDetails 類(lèi)。

  10. 單擊“Next”。

    將顯示“Define Data Methods”對(duì)話框。

  11. 在“Choose a method”選項(xiàng)卡窗格的“Select”列表中,選擇 GetSalesOrderDetails 方法。

  12. 單擊“Update”選項(xiàng)卡。

  13. 在“Update”選項(xiàng)卡窗格的“Choose a method”列表中,選擇 Update 方法。

  14. 單擊“finish”。

    您已經(jīng)將數(shù)據(jù)源控件配置為使用 ProcessingOrderDetails 類(lèi)來(lái)通過(guò)數(shù)據(jù)模型與數(shù)據(jù)庫(kù)交互。

下一步是創(chuàng)建數(shù)據(jù)綁定控件并對(duì)其啟用動(dòng)態(tài)數(shù)據(jù)。然后,該控件可以依賴(lài)于動(dòng)態(tài)數(shù)據(jù)功能來(lái)創(chuàng)建用于顯示和編輯數(shù)據(jù)的 UI。

配置數(shù)據(jù)綁定控件以啟用動(dòng)態(tài)數(shù)據(jù)功能
  1. 從“Toolbox”的“Data”組中,將一個(gè) GridView 控件添加到該頁(yè)上。

  2. 在“GridView Tasks”菜單的“Choose Data Source”列表中,選擇 ObjectDataSource1。

    這是您在前一過(guò)程中創(chuàng)建的 ObjectDataSource 控件的 ID。

  3. 啟用paging、editing和selection。

  4. 切換到“Source”視圖。

  5. 在 GridView 控件的 Columns 元素中,刪除所有自動(dòng)生成的 DataBoundField 控件。(保留 CommandField 元素。)

  6. 通過(guò)將 AutoGenerateColumns 特性設(shè)置為 true 啟用列的自動(dòng)生成功能,如下面的示例所示:

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
      DataSourceID
    ="ObjectDataSource1" AutoGenerateColumns="True" >
        
    <Columns>
          
    <asp:CommandField 
            
    ShowEditButton="True" ShowSelectButton="True" /> 
        
    </Columns>
    </asp:GridView>
  7. 保存并關(guān)閉 EnableDynamicData.aspx 文件。

  8. 打開(kāi)EnableDynamicData.aspx.cs 類(lèi)文件。

  9. 添加對(duì) System.Web.DynamicData 命名空間的引用,如下面的示例所示:

    using System.Web.DynamicData
  10. 在 Page_Init 方法中對(duì) GridView 控件啟用動(dòng)態(tài)數(shù)據(jù),如下面的示例所示:

protected void Page_Init()
  {
    GridView1.EnableDynamicData(
typeof(SalesOrderDetail));
  }
  1. 保存并關(guān)閉文件。

  2. 重新生成應(yīng)用程序。

測(cè)試動(dòng)態(tài)數(shù)據(jù)功能


本節(jié)演示如何通過(guò)驗(yàn)證以下內(nèi)容來(lái)測(cè)試動(dòng)態(tài)數(shù)據(jù)功能是否已集成到 GridView 控件中:

  • 該自定義業(yè)務(wù)邏輯與數(shù)據(jù)庫(kù)正確交互。

  • 對(duì)數(shù)據(jù)字段的更改進(jìn)行動(dòng)態(tài)數(shù)據(jù)驗(yàn)證。

  • 動(dòng)態(tài)數(shù)據(jù)生成錯(cuò)誤消息,這些錯(cuò)誤消息基于動(dòng)態(tài)數(shù)據(jù)從數(shù)據(jù)庫(kù)架構(gòu)元數(shù)據(jù)中推斷的信息。

測(cè)試動(dòng)態(tài)數(shù)據(jù)功能
  1. 在“Solution Explorer”中,右擊 EnableDynamicData.aspx 頁(yè),然后單擊“在瀏覽器中查看”。

    瀏覽器中顯示一個(gè)頁(yè)面,其中顯示 SalesOrderDetail 表。

  2. 驗(yàn)證顯示的 SalesOrderDetails 數(shù)據(jù)字段是否正確。

  3. 在任意行上單擊“Edit”,為 UnitPrice 列輸入一個(gè)非數(shù)字值。

  4. 在同一行上,單擊“Update”。

    動(dòng)態(tài)數(shù)據(jù)將顯示一條錯(cuò)誤消息,警告您 UnitPrice 字段必須為十進(jìn)制值。請(qǐng)注意,用于編輯的 UI 基于動(dòng)態(tài)數(shù)據(jù)默認(rèn)模板。

  5. 在同一行上,單擊“Cancel”。

  6. 在任意行上單擊“Edit”,然后將 OrderQty 列更改為一個(gè)小于或等于數(shù)據(jù)庫(kù)允許的最大整數(shù) (32767) 的值。

  7. 在同一行上,單擊“Update”。

    動(dòng)態(tài)數(shù)據(jù)將更新該數(shù)據(jù)庫(kù)。由于您輸入的值有效,數(shù)據(jù)會(huì)通過(guò)動(dòng)態(tài)數(shù)據(jù)驗(yàn)證。

  8. 在任意行上單擊“Edit”,然后將 OrderQty 列更改為一個(gè)大于數(shù)據(jù)庫(kù)允許的最大整數(shù) (32767) 的值。

  9. 在同一行上,單擊“Update”。

    動(dòng)態(tài)數(shù)據(jù)會(huì)顯示一條錯(cuò)誤消息,指出您輸入了無(wú)效的值。

  10. 在同一行上,單擊“Cancel”。

    這表明動(dòng)態(tài)數(shù)據(jù)功能已集成到 GridView 控件中,而且它使用從數(shù)據(jù)庫(kù)架構(gòu)中獲得的元數(shù)據(jù)信息。驗(yàn)證是應(yīng)用程序從動(dòng)態(tài)數(shù)據(jù)中繼承的功能的一部分。

  11. 關(guān)閉瀏覽器。

添加自定義數(shù)據(jù)信息


在本部分演練中,您會(huì)向數(shù)據(jù)庫(kù)架構(gòu)中添加自定義信息(元數(shù)據(jù))。動(dòng)態(tài)數(shù)據(jù)在處理數(shù)據(jù)字段時(shí)使用該元數(shù)據(jù)。例如,您可以為數(shù)據(jù)庫(kù)允許的數(shù)據(jù)字段以外的數(shù)據(jù)字段定義值范圍。在本演練中,您將添加自定義信息以要求 UnitPrice 值(對(duì)數(shù)據(jù)庫(kù)來(lái)說(shuō)不是必需字段)并設(shè)置 OrderQty 值的范圍。

提供自定義元數(shù)據(jù)
  1. 在“Solution Explorer”中,右擊項(xiàng)目名稱(chēng),然后選擇“Add Refereence”。

    即會(huì)顯示“Add Reference”對(duì)話框。

  2. 單擊“.NET”選項(xiàng)卡。

  3. 從列表中選擇 System.ComponentModel.DataAnnotations。

  4. 單擊“OK”。

  5. 打開(kāi)EnableDynamicData.aspx.cs 文件。

  6. 將下面的代碼復(fù)制到該文件中,這樣會(huì)替換文件中的所有已有代碼。


    using System.ComponentModel.DataAnnotations;

    namespace EnableDynamicData
    {
      [MetadataType(
    typeof(SalesOrderDetailMetadata))]
      
    public partial class SalesOrderDetail
      {
        
    public class SalesOrderDetailMetadata
        {
          [Required]
          
    public string UnitPrice { getset; }

          [Range(
    0100)]
          
    public decimal OrderQty { getset; }

        }
      }
    }


    此代碼創(chuàng)建兩個(gè)類(lèi):名為 SalesOrderDetail 的分部類(lèi)及其內(nèi)部的名為 SalesOrderDetailMetadata 的類(lèi)。

    這些類(lèi)擴(kuò)展數(shù)據(jù)模型,能讓您執(zhí)行以下任務(wù):

    • 向 UnitPrice 數(shù)據(jù)字段中添加元數(shù)據(jù)以防止出現(xiàn)空值。(AdventureWorks 數(shù)據(jù)庫(kù)允許 UnitPrice 數(shù)據(jù)字段為空值。)當(dāng)用戶(hù)嘗試輸入空值時(shí),動(dòng)態(tài)數(shù)據(jù)將發(fā)出錯(cuò)誤消息。

    • 向 OrderQty 數(shù)據(jù)字段中添加元數(shù)據(jù)以設(shè)置允許的范圍。AdventureWorks 數(shù)據(jù)庫(kù)對(duì) OrderQty 數(shù)據(jù)字段沒(méi)有范圍限制。當(dāng)用戶(hù)嘗試輸入超出允許范圍的值時(shí),動(dòng)態(tài)數(shù)據(jù)將發(fā)出錯(cuò)誤消息。

    以這種方式使用分部類(lèi)可提供一種靈活的方式來(lái)修改數(shù)據(jù)模型的行為,而不必直接更改數(shù)據(jù)模型。

  7. 保存并關(guān)閉文件。

測(cè)試自定義動(dòng)態(tài)數(shù)據(jù)驗(yàn)證


本部分演示如何測(cè)試動(dòng)態(tài)數(shù)據(jù)是否根據(jù)您提供的元數(shù)據(jù)執(zhí)行驗(yàn)證。您將測(cè)試以下內(nèi)容:

  • 動(dòng)態(tài)數(shù)據(jù)根據(jù)自定義元數(shù)據(jù)對(duì)數(shù)據(jù)字段的更改進(jìn)行正確驗(yàn)證。

  • 動(dòng)態(tài)數(shù)據(jù)根據(jù)從自定義元數(shù)據(jù)信息中推斷的信息來(lái)生成錯(cuò)誤消息。

測(cè)試自定義動(dòng)態(tài)數(shù)據(jù)驗(yàn)證
  1. 在“Solution Explorer”中,右擊 EnableDynamicData.aspx 頁(yè),然后選擇“View in Browser”。

    瀏覽器中顯示一個(gè)頁(yè)面,其中顯示 SalesOrderDetails 表。

  2. 在任一行上,單擊“Edit”并清除 UnitPrice 列值。

  3. 在同一行上,單擊“Update”。

    動(dòng)態(tài)數(shù)據(jù)將顯示一條錯(cuò)誤消息,警告您 UnitPrice 字段是必需的。這表明動(dòng)態(tài)數(shù)據(jù)驗(yàn)證已集成到 GridView 控件中,而且它使用您提供的自定義元數(shù)據(jù)信息。

  4. 在同一行上,單擊“Cancel”。

  5. 在任意行上單擊“Edit”,然后將 OrderQty 列更改為允許范圍內(nèi)的值,如 25。

  6. 在同一行上,單擊“Update”。

    動(dòng)態(tài)數(shù)據(jù)將更新該數(shù)據(jù)庫(kù)。由于您輸入的值有效,數(shù)據(jù)會(huì)通過(guò)驗(yàn)證。

  7. 在任意行上單擊“Edit”,然后將 OrderQty 列更改為允許范圍外的值,如 250。

  8. 在同一行上,單擊“Update”。

    動(dòng)態(tài)數(shù)據(jù)將顯示一條錯(cuò)誤消息,指出數(shù)據(jù)字段值必須介于 0 和 100 之間。這表明已經(jīng)使用自定義元數(shù)據(jù)信息,將動(dòng)態(tài)數(shù)據(jù)驗(yàn)證集成到 GridView 控件中。

  9. 在同一行上,單擊“Cancel”。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Gridview用法大總結(jié)(牛年珍藏版)
asp.net中Bind和Eval的有什么區(qū)別_北極狼
聲明式數(shù)據(jù)綁定教程-SqlDataSource 與 GridView
GridView+DetailsView控件實(shí)現(xiàn)數(shù)據(jù)庫(kù)查詢(xún)、添加、刪除、修改
動(dòng)態(tài)合并GridView數(shù)據(jù)行DataRow的列
這個(gè)工具能替代Excel,可惜90%的人都沒(méi)用過(guò)!
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服