共用方式為


HOW TO:使用自訂頁面範本以自訂個別資料表的配置

更新:2007 年 11 月

使用 ASP.NET Dynamic Data 時,可以利用兩種常見的方法定義自訂項目。欄位範本可以針對欄位特定的行為進行自訂,而頁面範本可以針對資料表特定的行為進行自訂。

第一種方法是要透過建立自訂的欄位範本,藉此自訂資料表中的資料欄位。然後,您會建立名稱符合表示資料表之實體類別的部分類別。在部分類別中,您可以使用 UIHintAttribute 屬性,指定用於顯示的自訂欄位範本名稱。如需詳細資訊,請參閱 HOW TO:自訂動態資料控制項中的資料欄位外觀和行為

第二種方法是在 DynamicData\CustomPages 資料夾中建立子資料夾。子資料夾的名稱要符合資料表 (您想要自訂的) 中資料內容類別的資料表存取子。接著,您會在資料夾中建立自訂頁面範本。本主題說明如何利用上述的第二種方法。

預設頁面範本適用於所有資料表,而且不會使用結構描述專屬的資訊。不過,當您因為特定資料表而使用自訂頁面範本時,可以使用結構描述資訊以顯示特定欄位。

若要建立自訂頁面精靈

  1. 確定已啟用 Scaffolding。在 Global.asax 檔案,將 MetaModelRegisterContext() 方法中的 ContextConfiguration.ScaffoldAllTables 屬性設定為 true。

    在下列範例中,會示範加入可以啟用 Scaffolding 以及啟用 List 動作呼叫的 RegisterRoutes 方法。

    Public Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        Dim model As New MetaModel
        model.RegisterContext(GetType(AdventureWorksLTDataContext), _
            New ContextConfiguration() With {.ScaffoldAllTables = True})
    
        routes.Add(New DynamicDataRoute("{table}/{action}.aspx") With { _
             .Constraints = New RouteValueDictionary(New With _
                {.Action = "List|Details|Edit|Insert"}), _
                 .Model = model})
    
    End Sub
    
    public static void RegisterRoutes(RouteCollection routes) {
         MetaModel model = new MetaModel();
    
        model.RegisterContext(typeof(AdventureWorksLTDataContext), 
            new ContextConfiguration() { ScaffoldAllTables = true });
    
         routes.Add(new DynamicDataRoute("{table}/{action}.aspx")
         {
             Constraints = new RouteValueDictionary(new { action = 
                "List|Details|Edit|Insert" }),
                Model = model
            });
        }
    

    如需啟用 Scaffolding 的詳細資訊,請參閱逐步解說:建立使用 Scaffolding 的新動態資料網站

  2. 在 DynamicData\CustomPages 資料夾中,建立子資料夾。命名資料夾時,請使用下列方針:

    • 如果資料模型基礎為 LINQ to SQL,請使用資料內容中的資料表名稱做為資料夾名稱。例如,若要在 AdventureWorksLT 資料庫中建立 Product 資料表的自訂頁面,必須建立名稱為 DynamicData\CustomPages\Products 的目錄。

    • 如果資料模型基礎為 ADO.NET Entity Framework,請使用物件內容中的資料表名稱做為資料夾名稱。例如,若要在 AdventureWorksLT 資料庫中建立 Product 資料表的自訂頁面,必須建立名稱為 DynamicData\CustomPages\Product 的目錄。

  3. 將現有的頁面範本從 DynamicData\PageTemplates 資料夾複製到 DynamicData\CustomPages 下的子資料夾,且該子資料夾名稱必須為資料表存取子。

    例如,將 DynamicData\PageTemplates\List.aspx 複製到 DynamicData\CustomPages\Products (使用 LINQ to SQL 時) 或是到 DynamicData\CustomPages\Product (使用 Entity Framework 時)。

  4. 將您的自訂內容加入到上一個步驟中複製的頁面範本。

    以下範例示範標題已變更的標記。

    <h2> Custom Pages Demo <%= table.DisplayName%></h2>
    
  5. 若要測試自訂範本,在瀏覽器中巡覽到該資料表,並且確認範本已包含您所有的變更。

    例如,巡覽到 Product 資料表:您會看到 "Custom Pages Demo Product" (在 LINQ to SQL 中) 或是 "Custom Pages Demo Product" (在 Entity Framework 中)。

請參閱

工作

逐步解說:建立使用 Scaffolding 的新動態資料網站

概念

ASP.NET 動態資料 Scaffolding 和頁面範本概觀

其他資源

使用 ASP.NET 動態資料