探索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编码教程:如何实现/使用缓存
[ASP]2015年4月15日ASP编码教程:asp缓存的分类
[ASP]2015年4月15日ASP编码教程:何谓ASP缓存/为什么要缓存
[ASP]2015年4月15日ASP编码教程:asp实现的sha1加密解密代码
[ASP]2015年4月15日ASP编码教程:asp执行带参数的sql语句实例
[ASP]2015年4月14日