欢迎来到天天文库
浏览记录
ID:30805202
大小:234.50 KB
页数:17页
时间:2019-01-03
《如何构建积木式web应用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、如何构建积木式Web应用上下文基本上我们在儿童时代都玩过积木玩具。通过一块块的积木,再加上我们的想象力,就可以构造出非常多不同的风格的建筑。那么,我们可不可以把这种搭积木的方式应用到我们的web应用上呢。问题web应用通过提供给用户一整套组件(相当于积木),以及一套已经成型的方案(相当于图纸)。用户可以采用类似搭建积木的方式来根据自己的需要制作界面和应用。环境采用asp.net1.0或asp.net1.1预备知识C#,asp.net的服务器控件编程,asp.net服务器控件生命周期最好具备以下知识PageController,FrontController解决方案1、建立目录结构为了了解
2、如何采用积木块式应用,我们首先建立如下的主题目录结构:在Sheme目录下保存所有的主题,每个主题都采用相同的目录结构。UserControl目录保存最基本的积木块(UserControl),Page目录是积木块组成的页面所形成的UserControl,Css目录保存与积木块同名的css文件来控制UserControl的界面。PageTeamplate.ascx是页面布局框架,根据所请求的页面不同,在PageTemplate的主体位置载入不同Page目录下的ascx文件。2、划分自己的web积木UserControl将web应用分成一块块的积木,每一块积木形成一个UserControl,并
3、且每一个UserControl有一个同名的css文件用来控制界面。最基本的积木块要放在UserControl目录下,而由最基本积木块组成的页面文件放在Page目录下。提示:在一般的web应用中,都会有Header,Footer,Login等等这样的模块,这些模块就可以形成UserControl组成web应用的积木。具体积木块应该根据你的web应用功能来划分,一般来说我们可以把某个功能就划分成一个积木3、构建载入积木块的容器MyPlaceHolder有了UserContro1这些积木块之后,就需要有能够自动在应用中载入这些UserControl积木的容器,这就是PlaceHolder0不过
4、,我们需要扩展PlaceHolder的功能达到自动载入UserControl的目的。publicclassMyPlaceHolder:PlaceHolder{privatestringUserControl;//要载入的UserControl目录下的.ascxprivatestringpageControI;//要载入的Page目录下的.ascxpublicMyPlaceHolder(){UserControl=,,n;pageControl="”;publicstringUserControlget{returnuserControl;}set{userControl=value;}p
5、ublicstringPageControl{get{returnpageControl;}set{pageControl=value;}//当需要载入多个UserContro1时,可以直接调用LoadUserControl//当只需要载入一个UserControl时,可以调用Clear清除载入过的内容publicvoidClear(){this.Controls.Clear();}//载入UserControl目录下的.ascx//以及导入对应的css文件publicvoidLoadUserControl(stringUserControl){this.userControl=User
6、Control;BasePagepage=(BasePage)this.Page;//请参考后面的BasePage的代码Controlcontrol=this.Page.LoadControl(page.Scheme+"usercontrol/"+userControl+".ascx11);stringcss="css/”+userControl+H.cssH;//对应的css文件if(File.Exists(this.Page.MapPath(page^Scheme+css))){page.AddCss(page.Scheme+css);}this-Controls.Add(contr
7、ol);}〃载入Page目录下的.ascx//LoadPage与LoadUserControl的区别是两者载入的.nscx所在的目录不同//Page目录下的.ascx可以看成是一些搭建主体结构的.ascx,其使用MyPlaceHolder//来包含最基础的积木块.ascx(在UserControl目录下)publicvoidLoadPage(stringPageControl){this.PageControl=PageContro
此文档下载收益归作者所有