posts - 9,  comments - 75,  trackbacks - 0

Asp.Net 2.0使用总结

 

       最近用Asp.Net 2.0开发了几个系统,通过不断的摸索和实践,掌握了一些新的开发方法和控件使用经验,现总结如下:

1布局(Layout)

1.1母版页

       Asp.Net 2.0中,提出了MasterPage(母版页)的概念。母版页可以为网站定义公用的结构和页面元素,如页眉、页脚、菜单,站点地图和当前登录用户等,内容与普通aspx页面相同,只比它多一个ContentPlaceHolder(内容占位符)。母版页可以嵌套使用,但是由于VS2005不支持对嵌套母版页进行可视化编辑,导致使用起来很不方便,不如新建一个母版页省事。这种情况在开发中还是很常见的,如我已经建好了一个11列的母版页,现在需要一个12列的母版页,一种解决方法是在11列的母版页上嵌套,但不支持可视化编辑;另外一种解决方法是新建一个母版页,将11列的代码复制过去,然后再加一个ContentPlaceHolder。在请求一个aspx页面时,母版页和内容页将被组合为与内容页同名的单个类,而最终经过编译和合并的类从Page类派生。

       另外,母版页所需要的图片最好以cssurl()方式引用,否则需要在每个使用母版页的目录中防止图片。

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控件实现网站导航,还能充当MenuTreeView的数据源。

1.4

Asp.Net 2.0中,终于提供了期盼已久的造树控件TreeView。同Menu一样,既可以采用递归的方式构建树,也可以采用绑定SiteMap数据源的方式构建树。TreeView中最值得关注的就是TreeNode(树节点)TreeNodeSelectAction(选择动作)取值分为None()Expand(点击后展开子节点)Select(表现形式为超链接,点击后触发PostBack事件)SelectExpand(表现形式为超链接,点击后既展开子节点,又触发PostBack事件),还有就是TreeNodeShowCheckBox(显示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异步更新

       UpdatePanelAsp.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中放置需要局部更新的内容,如TreeViewGridViewTextBox等,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)  编辑 收藏 网摘

FeedBack:
2007-07-06 23:09 | jon [未注册用户]
差的只是不能跨平台而已 , MS的东西的确易用性够强
  回复  引用    
#2楼 [楼主]
2007-07-14 12:56 | Spring.Cheung      
谁能说得清呢,Mono暂且不提。等SilverLight,WPF普及后,客户关心的大概只有界面而已。
  回复  引用  查看    

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》



相关文章:

相关链接:
 
姓名: 张春鹏
职业: .Net架构师
毕业于: 南京工业大学
目前居住于: 中国北京

版权声明:
本Blog内的所有文章如非特别注明,版权均归作者个人所有,任何外部引用或摘抄请注明原文地址,未经作者授权不得用于任何以营利目的的行为,谢谢合作!

<2007年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

与我联系

搜索

 

常用链接

留言簿(2)

我的标签

随笔档案

积分与排名

  • 积分 - 21310
  • 排名 - 2121

最新评论

阅读排行榜

评论排行榜