编程开发 > ASP > 文章内容

探索ASP.NET中TailspinTravelUI层奥秘三

2012-1-4编辑:Sad

探索ASP.NET中Tailspin TravelUI层奥秘三

DynamicData/Content/FilterUserControl.ascx 在显示表中的数据时,该控件显示在表头,用以过滤表中的内容,比如可以只列表产品目录为“实用工具”的产品。

  DynamicData/CustomPages 文件夹。自定义网页模板文件夹,可用以替换 DynamicData/PageTemplates 文件夹中的默认模板。

  DynamicData/FieldTemplates 文件夹。包含各种类型的字段在查看和创建、编辑时所呈现的控件。

  DynamicData/PageTemplates 文件夹。包含在进行查看、编辑时的页面模板。

  Dynamic Data还有一个快速开发的基础是脚手架,脚手架是一种机制,通过脚手架,我们不必再为每一个表的增加、查看、修改做不同的页面,因为脚手架会自动生成这些页面。Tailspin Travel对所有表都启用脚手架,对所有表启用脚手架表示公开了整个数据模型:

  metaModel.RegisterContext(contextFactory, new ContextConfiguration { ScaffoldAllTables = true });

  还可以对特定表启用脚手架功能,这时就要将上面的ScaffoldAllTables = false,然后给模型类打标签 [System.ComponentModel.DataAnnotations.ScaffoldTable(true)]

  自动生成的网站需要我们调整的页面,需要创建自定义的页面可以把它放在DynamicData/CustomPages 文件夹,在 DynamicData/CustomPages/ 下新建一个文件夹,名称为 FlightBookings,这个名称一定要与 Tailspin.edmx中的相应表的分部类名称一样。然后将 DynamicData/PageTemplates/ 下的文件复制到 DynamicData/CustomPages/FlightBookings/。

  更改新模板文件中的类名。

  比如将类名称 List 改为 DynamicDataTest.FlightBookingsList。

  [MetadataType(typeof(CarRentalMetadata))] publicpartialclassCarRental { [ScaffoldTable(false)] privateclassCarRentalMetadata { [DisplayName("Pick up")] publicobjectRentalStart { getset} [DisplayName("Return")] publicobjectRentalEnd { getset} [DisplayName("Pick up Place")] [Required(ErrorMessage ="Please specify where you prefer to pickup the vehicle.")] publicobjectPickupPlaceId { getset} [DisplayName("Return place")] [Required(ErrorMessage ="Please specify where you prefer to return the vehicle.")] publicobjectReturnPlaceId { getset} [DisplayName("Vehicle")] [Required(ErrorMessage ="Please specify the vehicle type.")] publicobjectVehicleTypeId { getset} } } 还可以用 UIHint,DataType

  使用DisplayName更改界面的显示,DisplayName 只能用于类、方法、属性、索引、事件

  改变字段模板

  [MetadataType(typeof(FlightMetadata))] publicpartialclassFlight { publicFlight() { this.Id =Guid.NewGuid(); } [DisplayName("Flights")] privateclassFlightMetadata { [ScaffoldColumn(false)] publicobjectId { getset} [Required] publicobjectAirplaneType { getset} [UIHint("Time")] publicobjectDepartureTime { getset} [UIHint("Time")] [DataType(DataType.Time)] publicobjectArrivalTime { getset} [DisplayName("Departure Airport")] publicobjectDepartureAirport { getset} [DisplayName("Arrival Airport")] publicobjectArrivalAirport { getset} } } DynamicData

  非常的灵活,Tailspin Travel用来对付管理后台的开发方面具有非常高的效率,在前台使用MVC2保证性能,在UI界面的开发方面非常值得借鉴的一种模式。

探索ASP.NET中TailspinTravelUI层奥秘二

热点推荐

登录注册
触屏版电脑版网站地图