ASP.NET 3.5 Extensions新特性:ASP.NET Dynamic Data 體驗(下)

來源:互聯網
上載者:User
概述

在ASP.NET 3.5 Extensions新特性:ASP.NET Dynamic Data 體驗(上)一文中簡單的展示了一下ASP.NET Dynamic Data產生的資料檢視網頁效果,在這一篇中,看一下如何更進一步定製我們的網站。

定製網站外觀

首先從最簡單的開始定製,在網站下有一個MasterPage.master三個CSS樣式檔案,可以先從這裡下手,修改網站的整體外觀。如簡單修改一下MasterPage,使其看起來如下所示:

自訂動態資料視圖

自訂動態資料視圖,可以修改App_Shared/DynamicDataPages下的頁面來實現,如可以修改一下ListDetailsTemplate.aspx,為頁面中的每部分加上一個標題:

除此之外,我們可以針對特定的表進行資料檢視的定製,在網站下添加一個Products檔案夾(注意與表名必須相同),並添加一個ListDetail.aspx頁面,在頁面不顯示Detail資訊,這時候再開啟Products時,顯示的頁面中沒有了Detail資訊:

URL的訪問方式是~/{table}/{viewName}.aspx,在Web.config中指定:

<dynamicData dataContextType="" enableTemplates="true">  <mappings queryStringKeyPrefix="" pattern="~/{table}/{viewName}.aspx">    <add actions="list,details" viewName="ListDetails" templateFile="ListDetailsTemplate.aspx" />    <!--      <add actions="list" viewName="List" templateFile="ListTemplate.aspx" />      <add actions="details" viewName="Details" templateFile="DetailsTemplate.aspx" />    -->    <!--      Special overriding cases      <add actions="list,details" tables="Products,Categories" viewName="SpecialName" templateFile="ListTemplate.aspx"/>      <add actions="list" tables="Products" templateFile="DetailsTemplate.aspx" path="~/customPath.aspx"/>      <add actions="list" tables="Orders" viewName="MyListViewName"/>    -->  </mappings></dynamicData></system.web.extensions>
自訂動態資料欄位

自訂動態資料欄位,可以通過修改App_Shared/DynamicDataFields下的使用者控制項來實現,如開啟Text_Edit.ascx,為其中的TextBox添加一個背景色:

<asp:TextBox ID="TextBox1" runat="server" Text='<%# DataValue %>' BackColor="#FDDCBF"></asp:TextBox>

再運行網站,進行資料編輯時可以看到:

自己建立動態資料欄位

除了使用上面的方法自訂動態資料欄位之外,還可以自己建立動態資料欄位,在App_Shared/DynamicDataFields下添加一個Dynamic Data Field:

可以看到控制項繼承於FieldTemplateUserControlBase類,在其中添加一個Label控制項,並設定它的前景色彩為紅色:

<%@ Control Language="C#" Inherits="System.Web.DynamicData.FieldTemplateUserControlBase" %><asp:Label id="CurrentValueID" runat="server"    Text='<%# DataValueString %>' ForeColor="#FF0000">  </asp:Label>

關聯資料表中的欄位和控制項,需要添加一個pratial類,使用RenderHint特性來指定,第一個參數是欄位,第二個參數是與其相關聯的控制項:

[RenderHint("Status", "StatusControl")]public partial class Item{}

然後再運行網站,進入Item資料檢視,可以看到Status的前景色彩都變成了紅色:

自訂資料驗證

在ASP.NET Dynamic Data中內建支援資料驗證,我們也可以進行自訂的資料驗證。同樣是添加一個pratial類,內建的驗證特性有Range、Regex、Require三個,如下代碼所示:

using System;using System.Web.DynamicData;[Range("Qty", 100, 1000,    ErrorMessage = "Qty必須在{1}和{2}之間")]public partial class Inventory{}

在運行時如果輸入小於100或者大於1000將會給出提示資訊: 如果使用使用上面的幾個特性還不夠的話,你也可以使用LINQ to SQL中的局部方法OnPropertyChanging來進行驗證,如下代碼所示

public partial class Product {    partial void OnProductNameChanging(string value)     {      if (!Char.IsUpper(value[0])) {        throw new Exception("Product name must start with an uppercase letter.");}    }}

結束語

關於ASP.NET 3.5 Extensions中的新特性動態資料支援就用兩篇文章介紹到這裡,後續文章再介紹其他的特性。

ASP.NET 3.5 Extensions新特性:ASP.NET Dynamic Data 體驗(上)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.