包装网首页

用户控件包装器的设计与实现

http://news.pack.net.cn    2007年08月06日    中国包装网    字体【 1.引言

    sps2003是一个安全、可伸缩的企业级门户服务器。可以利用它将sharepoint 站点、信息和应d程序汇集到一个单一的门户位置,用户可以通过门户内容和布局进行个性化的定制,更快地找到相关信息。目前,许多企业和政府部门已开始基于sps2003服务在互联网上提供信息共享与应用服务,并构建跨企业的虚拟组织或虚拟企业,以实现大规模的资源共享。web part的自定义开发是实现基于sps2003上的复杂应用的关键,微软官方提供的web partforvs2003模版是开发web part的标准编程环境,但是非常可惜,它不提供web part开发的可视化界面,对于复杂界面的web part的开发,将是一件非常吃力的事情。用户控件包装器巧妙的利用web partforvs2003模版,通过web part的属性将用户控件载入页面,通过菜单编辑用户控件,通过web part的数据传递实现用户控件之间的数据传递。

    2. 用户控件与web part的联系

    asp.net为扩展服务器控件框架提供了两个抽象:用户控件和自定义控件。

    用户控件实质上是可插入其他页面中的 asp.net 页面,它们在一定程度上类似于传统 asp 中使用的 include 文件。使用 visual studio .net,可以使用将控件拖到页面设计器的方式,将服务器控件拖到用户控件设计器上,从而轻松地构建用户控件。

    asp.net自定义控件实质是一个从system.web.ui.control直接或间接继承于的类,它不受visual studio .net中图形工具的支持。可以通过覆盖system.web.ui.control的createchildcontrols 方法,往自定义控件中添加服务器控件,定义其属性和事件。然后覆盖control类的render方法(直接继承于control类)或覆盖webcontrol类的rendercontent方法(继承于webcontrol类),编写自己的代码来发出 html.

    web part是sps2003网站上的基本单元,它的概念类似于asp.net自定义控件,自己开发的web part将从microsoft.sharepoint.web partpages.webpart类继承,也是间接的继承了system.web.ui.control类。一样可以通过覆盖system.web.ui.control的createchildcontrols方法,添加服务器控件,定义其属性和事件。然后覆盖webpart类的renderwebpart方法,编写自己的代码发出html.

    web part可以通过添加子控件的方式将用户控件和自身相联系,需要定义的大量用户界面和业务事件在用户控件中完成,web part起着选择用户控件、编辑用户控件和传递用户控件数据的作用。

    3. 用户控件包装器的具体实现

    3.1用户控件的载入和属性编辑

    用户控件的载入和属性编辑都借助了web part的属性和工具面板。web part的属性分为默认属性和自定义属性。默认属性对web part的外观(如标题,高度,宽度),布局(如所在web part区域,显示的次序)和更高级的控制(如是否允许关闭,是否允许区域更改及选择访问web part的群体)进行了设置,是web part自带的属性。自定义属性是用户自已定义的属性,便于更灵活的编辑web part.

    工具面板由不同的tool part组成。

    默认属性对应webparttoolpart类,自定义属性对应custompropertytoolpart类,这两个类都继承于toolpart类。webpart类的gettoolparts方法决定将哪些tool part显示在工具面板里。web part框架默认在该方法中将这两个类的实例写入toolpart数组中,这两个属性将被工具面板中对应的tool part所编辑。同理,创建继承于toolpart的类,就可以在工具面板中很好的控制web part中除了属性的内容。

    3.1.1 用户控件的载入

    用户控件的载入通过web part的自定义属性和工具面板实现。主要步骤如下:

    (1) 将用户控件对应的dll文件放入sps2003的bin目录下,以待执行;

    (2) 创建webpart的子类;

    (3) 在子类中添加一个自定义属性,用于保存载入的用户控件的完整路径。

    (4) 创建toolpart的子类;

    (5) 将ascx文件放在sps2003的某个虚拟目录下,在toolpart子类中实现从该虚拟目录获取所有用户控件信息的方法;

    (6) 在toolpart子类中实现一个返回一个字符串的方法,该字符串用于创建一个项值为用户控件完整路径,项的文本为用户控件名称或描述的下拉列表框;

    (7) toolpart的子类覆盖虚方法rendertoolpart(htmltextwriter),将第7步得到的字符串传入并被htmltextwriter对象写到浏览器上,用于在工具面板中显示包含所有用户控件的下拉列表框;

    (8) toolpart的子类覆盖虚方法applychanges(该虚方法用于用户点击工具面板中的“确定”或“应用”按钮时发生,将相应tool part中的值作编辑)将通过表单形式提交到服务器端的下拉列表框的选中值传给相应web part的保存用户控件路径的自定义属性,通;该属性载入用户控件;

    (9) webpart的子类覆盖虚方法gettoolparts,在该方法中返回的toolpart数组中加入第4步创建的类的实例;

    (10) webpart的子类覆盖虚方法createchildcontrols,将载入的用户控件作为web part的子控件加入;

2页 [1] [2] 下一页 

来源:工控网    作者:

打印本页】【关闭窗口】【

相关信息

    企业追踪


    宿迁彩塑
    江苏省宿迁市彩塑包装有限公司是一家集生产、开发研究、进出口贸易为一体的省级高新技术企业。公司占地20...[详细]