在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
[源码下载] 精进不休 .NET 4.0 (3) - asp.net 4.0 新特性之动态数据(Dynamic Data)增强, AJAX增强; IDE之Visual Studio 2010增强
作者:webabcd 介绍 asp.net 4.0 的新增功能 动态数据(Dynamic Data)增强(之前的版本:http://www.cnblogs.com/webabcd/archive/2009/02/23/1396212.html)
Visual Studio 2010 增强 示例 1、Dynamic Data 之 EnableDynamicData Demo/EnableDynamicData.aspx
代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EnableDynamicData.aspx.cs"
Inherits="DynamicData.Demo.EnableDynamicData" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <!--收集并显示由 Dynamic Data 所做的数据验证的结果--> <asp:ValidationSummary ID="ValidationSummary1" runat="server" EnableClientScript="true" HeaderText="验证错误的列表" /> <asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" DataKeyNames="ProductID" DataSourceID="EntityDataSource1"> <Fields> <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" /> </Fields> </asp:DetailsView> <asp:EntityDataSource ID="EntityDataSource1" runat="server" ConnectionString="name=AdventureWorksEntities" DefaultContainerName="AdventureWorksEntities" EnableDelete="True" EnableInsert="True" EnableUpdate="True" EntitySetName="Products" EnableFlattening="False"> </asp:EntityDataSource> </div> </form> </body> </html> Demo/EnableDynamicData.aspx.cs
代码
using System;
using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DynamicData.Demo { public partial class EnableDynamicData : System.Web.UI.Page { protected void Page_Init() { /* * EnableDynamicData - 启用 Dynamic Data 的功能(包括字段模板,数据验证在内的等等 Dynamic Data 的功能都会被启用) * 第一个参数:需要启用 Dynamic Data 功能的实体类型 * 第二个参数:当控件启用插入模板的时候,为字段指定默认值 */ DetailsView1.EnableDynamicData(typeof(Product), new { Name = "默认名称" }); } protected void Page_Load(object sender, EventArgs e) { } } } 2、Dynamic Data 之 DynamicHyperLink Demo/DynamicHyperLinkDemo.aspx
代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DynamicHyperLinkDemo.aspx.cs"
Inherits="DynamicData.Demo.DynamicHyperLinkDemo" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <!-- DynamicHyperLink - 用于方便地生成在 Dynamic Data 站点中导航的超级链接 Action - 指定 Action(可选值有 List|Details|Edit|Insert) TableName - 需要链接到的目标表名 ContextTypeName - 上下文的类全名 --> <asp:DynamicHyperLink ID="ListHyperLink" runat="server" Text="全部产品" Action="List" TableName="Products" ContextTypeName="DynamicData.AdventureWorksEntities"> </asp:DynamicHyperLink> <!-- 生成的 HTML 代码如下: <a >全部产品</a> --> </div> </form> </body> </html> 3、Dynamic Data 之 Entity Template DynamicData/EntityTemplates/Products.ascx
代码
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Products.ascx.cs" Inherits="DynamicData.DynamicData.EntityTemplates.Products" %>
<!-- Entity Template - 实体模板是一个新增的用于自定义数据显示的模板,其是基于 FormView 控件做数据呈现的 以下演示如何实现自定义的 Entity Template ,进入产品详情页可查看此 Demo 的效果 以下内容会被替换到 PageTemplates/Details.aspx <asp:DynamicEntity runat="server" /> 中去 --> <tr> <td> 产品ID </td> <td> <asp:DynamicControl ID="DynamicControl1" runat="server" DataField="ProductID" /> </td> </tr> <tr> <td> 产品名称 </td> <td> <asp:DynamicControl ID="DynamicControl2" runat="server" DataField="Name" /> </td> </tr> DynamicData/EntityTemplates/Products.ascx.cs
代码
using System;
using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace DynamicData.DynamicData.EntityTemplates { // 自定义的 EntityTemplate 的基类是 System.Web.DynamicData.EntityTemplateUserControl public partial class Products : System.Web.DynamicData.EntityTemplateUserControl { } } 4、Dynamic Data 之 DisplayAttribute Demo/Metadata.cs
代码
using System;
using System.Collections.Generic; using System.Linq; using System.Web; using System.ComponentModel.DataAnnotations; namespace DynamicData { [MetadataType(typeof(Product_Metadata))] public partial class Product { } public class Product_Metadata { // DisplayAttribute - 新增的一个 Attribute // Name - 指定字段的名称(参考 Demo/EnableDynamicData.aspx ,其“ProductID”字段显示为“产品ID”) // Order - 指定字段在所有字段中的排序 [Display(Name="产品ID", Order=0)] public object ProductID { get; set; } [Display(Name = "产品名称", Order = 1)] public object Name { get; set; } [Range(1, 100, ErrorMessage="{0}的范围必须是{1}-{2}")] [Display(Name = "单价", Order = 2)] public object ListPrice; } } 5、Dynamic Data 之 其它新特性 Demo/Others.aspx
代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Others.aspx.cs" Inherits="DynamicData.Demo.Others" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style> body { font-size: 12px; } textarea { width: 99%; } </style> </head> <body> <form id="form1" runat="server"> <div> <p> 1、DynamicDataManager 控件新增了 DataControls 属性,在其内可以声明多个 DataControlReference,用于指定哪些控件需要启用 Dynamic Data 的功能 <textarea> <asp:DynamicDataManager ID="DynamicDataManager1" runat="server" AutoLoadForeignKeys="true"> <DataControls> <asp:DataControlReference ControlID="GridView1" /> </DataControls> </asp:DynamicDataManager> <asp:GridView id="GridView1" runat="server" /> </textarea> </p> <p> 2、新增了一个 EnumDataTypeAttribute,可以声明某字段为枚举类型。对应的字段模板里也新增了 Enumeration.ascx 和 Enumeration_Edit.ascx </p> <p> 3、新增了两个数据类型 <ul> <li>[DataType(DataType.EmailAddress)] 对应的字段模板里也新增了 EmailAddress.ascx</li> <li>[DataType(DataType.Url)] 对应的字段模板里也新增了 Url.ascx</li> </ul> </p> <p> 4、支持多对多的关系(限 Entity Framework 模型)。对应的字段模板里也新增了 ManyToMany.ascx 和 ManyToMany_Edit.ascx </p> <p> 5、原 Dynamic Data 会自动地将类型为 Boolean, Enumeration, ForeignKey 的字段作为查询条件输出到页面上。现在新增了 Filter Template(查询模板),可以对这些查询条件的样式和逻辑等做自定义修改(详见 DynamicData/Filters 下的文件) </p> </div> </form> </body> </html> 6、AJAX 增强 List.html
代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style> body { font-size: 12px; } textarea { width: 99%; } </style> </head> <body> <p> 1、Visual Studio 2010 内包含了 jQuery </p> <p> 2、JavaScript 框架的 CDN <ul> <li>jQuery - <script src="http://ajax.Microsoft.com/ajax/jquery-1.3.2.js" type="text/javascript"></script></li> <li>asp.net ajax - <asp:ScriptManager ID=”ScriptManager1” EnableCdn=”true” runat=”server” /></li> </ul> </p> <p> 3、asp.net ajax 的按需加载脚本,如下所示 <textarea rows="10"> <asp:ScriptManager ID="ScriptManager1" AjaxFrameworkMode="Explicit" runat="server"> <Scripts> <asp:ScriptReference Name="MicrosoftAjaxCore.js" /> <asp:ScriptReference Name="MicrosoftAjaxComponentModel.js" /> <asp:ScriptReference Name="MicrosoftAjaxSerialization.js" /> <asp:ScriptReference Name="MicrosoftAjaxNetwork.js" /> </Scripts> </asp:ScriptManager> </textarea> </p> </body> </ 全部评论
专题导读
热门推荐
热门话题
阅读排行榜
|
请发表评论