Asp.Net 2.0使用总结
最近用Asp.Net 2.0开发了几个系统,通过不断的摸索和实践,掌握了一些新的开发方法和控件使用经验,现总结如下:
1布局(Layout)
1.1母版页
在Asp.Net 2.0中,提出了MasterPage(母版页)的概念。母版页可以为网站定义公用的结构和页面元素,如页眉、页脚、菜单,站点地图和当前登录用户等,内容与普通aspx页面相同,只比它多一个ContentPlaceHolder(内容占位符)。母版页可以嵌套使用,但是由于VS2005不支持对嵌套母版页进行可视化编辑,导致使用起来很不方便,不如新建一个母版页省事。这种情况在开发中还是很常见的,如我已经建好了一个1行1列的母版页,现在需要一个1行2列的母版页,一种解决方法是在1行1列的母版页上嵌套,但不支持可视化编辑;另外一种解决方法是新建一个母版页,将1行1列的代码复制过去,然后再加一个ContentPlaceHolder。在请求一个aspx页面时,母版页和内容页将被组合为与内容页同名的单个类,而最终经过编译和合并的类从Page类派生。
另外,母版页所需要的图片最好以css中url()方式引用,否则需要在每个使用母版页的目录中防止图片。
1.2菜单
在Asp.Net 2.0中,提供了Menu控件。在需要应用公司权限的系统中,可以在母版页中获取菜单资源项集合,然后采用递归的方式构建菜单。而在不需要应用公司权限的系统中,可以在页面中采用绑定SiteMap数据源的方式构建菜单,另外需要设置MaximumDynamicDisplayLevels(动态菜单项显示层次最大值)和StaticDisplayLevels(静态菜单项显示层次值)。
1.3站点地图
在Asp.Net 2.0中,提供了Web.sitemap文件存放网站所有页面的标题、描述和链接地址。在Web.config中加入配置节
<siteMap defaultProvider="Default">
<providers>
<add name="Default" type="System.Web.XmlSiteMapProvider" siteMapFile="~/Web.sitemap"/>
</providers>
</siteMap>
Web.sitemap不但可以通过SiteMapPath控件实现网站导航,还能充当Menu,TreeView的数据源。
1.4树
在Asp.Net 2.0中,终于提供了期盼已久的造树控件TreeView。同Menu一样,既可以采用递归的方式构建树,也可以采用绑定SiteMap数据源的方式构建树。TreeView中最值得关注的就是TreeNode(树节点)。TreeNode的SelectAction(选择动作)取值分为None(无)、Expand(点击后展开子节点)、Select(表现形式为超链接,点击后触发PostBack事件)和SelectExpand(表现形式为超链接,点击后既展开子节点,又触发PostBack事件),还有就是TreeNode的ShowCheckBox(显示CheckBox)属性。
2外观(Appearance)
2.1主题
主题是属性设置的集合,使用这些设置可以定义页面和控件的外观,然后在某个 Web 应用程中的所有页、整个 Web 应用程序或服务器上的所有 Web 应用程中一致地应用此外观。也可以说,主题是一组外观的集合,更换主题就可以达到换肤的效果。主题保存在Themes目录中。在Web.config中加入配置节
<pages styleSheetTheme="Default" validateRequest="false">
</pages>
或
<pages theme="Default" validateRequest="false">
</pages>
前者是先应用Default主题设置,再应用具体页面中的特殊设置。而后者是只应用Default主题设置,不管具体页面中是否做了特殊设置。
2.2皮肤
皮肤是应用到一个控件上的样式信息,这些内容保存在.skin文件当中,可以对皮肤用SkinID命名,然后控件在使用皮肤时,设置它的SkinID属性。如果不设置,则使用其默认值。皮肤保存在Themes子目录中。
3Asp.Net AJAX
3.1异步更新
UpdatePanel是Asp.Net AJAX中很重要的一个控件。它把传统的ASP.NET程序与最新的Web 2.0 AJAX无缝的连接在一起。如果你已经有一些基于ASP.NET的网站,UpdatePanel可以让你通过很小的修改轻松的实现AJAX。如果你并不很熟悉AJAX相关的技术,如JavaScript/DOM等,UpdatePanel更是可以让你不用书写一行客户端脚本而实现非常酷的AJAX应用。所需要的就是把需要动态更新的部分放置于一个UpdatePanel中。在页面中需要加入
<asp:ScriptManager ID="ScriptManager" runat="server" EnablePageMethods="True" EnablePartialRendering="True" EnableScriptGlobalization="True">
</asp:ScriptManager>
UpdatePanel包括ContentTemplate(内容模板)和Triggers(触发器)两部分。ContentTemplate中放置需要局部更新的内容,如TreeView,GridView,TextBox等,Triggers包括AsyncPostBackTrigger(异步提交触发)和PostBackTrigger(提交触发)两种模式。常用的是AsyncPostBackTrigger模式,只要设置ControlID(控件编码)和EventName(事件名称)即可。
另外一种方式是在客户端调用Page中的方法。方法必须用[WebMethod]特性修饰,并且是public static的。在客户端这样调用即可:
PageMethods.SaveTaskFile(, , OnSucceeded);
处理服务端返回结果如下:
function OnSucceeded(result)
{
}
posted on 2007-07-06 23:05
Spring.Cheung 阅读(903)
评论(2) 编辑 收藏 网摘