承接MOSS各种工作流开发 联系人:王先生.电话:13691349686 QQ:252385878 MSN:wanghao-3@hotmail.com

寻找网络安全产品代理商(主要产品有:主机审计与监控系统,移动介质管理系统,文件集中管理安全存储系统,硬盘锁等)主要针对内网安全和数据防泄密 联系人:张小姐 电话:13522877350 QQ:419919940

让用户控件包装器“见鬼”去。

   把用户控件装载到到WebPart里面,在实际的项目中,我们有时候需要用很多用户控件在MOSS里面,如果用,用户控件包装器的话,客户一看就显示的很不专业,也影响公司的形象,所以,做项目的时候需要把用户控件包装成WebPart,这样就显示的稍微的好点咯。。。嘿嘿。
其实也很简单,
1。 步骤1写好自己的用户控件,然后,把他用户控件的页面放到
C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\CONTROLTEMPLATES\WpLoadUc\AddUserControl.ascx下面
然后把dll放到相应的moss bin 下面 或GAC
2。写一个WebPart,很简单,代码如下:

using System;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;

using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace WPLoadUserControl
{
    [Guid("0d2c817f-71c3-4349-b813-cf8eb81f4bd5")]
    public class WPLoadUserControl : System.Web.UI.WebControls.WebParts.WebPart
    {
        protected Control userControl;
        public WPLoadUserControl()
        {
            this.ExportMode = WebPartExportMode.All;
        }

        protected override void CreateChildControls()
        {
            //base.CreateChildControls();

            this.Controls.Clear();
            string userControlPath = @"/_controltemplates/WpLoadUc/AddUserControl.ascx";
            this.userControl = this.Page.LoadControl(userControlPath);
            this.Controls.Add(this.userControl);

        }
        protected override void Render(HtmlTextWriter writer)
        {
            // TODO: add custom rendering code here.
             writer.Write("Show AA");
             this.userControl.RenderControl(writer);

        }

    }
}
代码是不是很简单哦,WebPart 的部署就不用我说啦。。。
3,然后修改下配置文件
<SafeControl Src="~/_controltemplates/WpLoadUc/*" IncludeSubFolders="True" Safe="True" AllowRemoteDesigner="True" />

嘿嘿 指定到相应的用户控件哦。
哈哈哈 ,各位是不是很简单,,嘿嘿快去测试哦。/
。。。。。。。。。。。。。
代码不是最好的,只是供大家参考。。

posted on 2007-08-13 09:31 A A 阅读(2173) 评论(12)  编辑 收藏 所属分类: SharePoint

评论

#1楼  2007-08-13 10:28 咖啡淡了 [未注册用户]

继续努力!!!   回复  引用    

#2楼  2007-08-13 10:49 lee [未注册用户]

弱弱的问下,这个东东干嘛的?WebPart是什么?

----偶系新手   回复  引用    

#3楼  2007-08-13 13:08 aspnetx      

看样子和自定义asp.net控件很像
当然,其本身据说好像就是asp.net

usercontrol包容器是为了使用方便,具体使用还要看自己的情况   回复  引用  查看    

#4楼  2007-08-13 13:41 Y.U(皮皮)      

包装说到底做的是 this.Page.LoadControl(userControlPath);
也不用和你那么麻烦配置webconfig和把usercontrol放到那么深的地方   回复  引用  查看    

#5楼 [楼主] 2007-08-13 14:05 AA()      

PPX


其实就是就是放道指定的地方,那个地方是放在标准的地方,
修改配置文件主要的目的,不是主要为这个用户控件而修改,
你仔细看,可以明白一些东西。。。   回复  引用  查看    

#6楼  2007-08-14 08:18 磨剑 [未注册用户]

你不认为这样很不“专业”吗?因为你同样实现了一个包装器,而这个包装器仅能加载一个指定的用户控件,也就是说,我开发多少用户控件,附带还要开发多少webpart,尽管这些webpart的代码基本可以全部复用。
而包装器就是用一个webpart来包装多个用户控件,具有更高的抽象和复用层次。
另外,维护、更新等工作量加大,我们不可以仅仅为了一点面子的问题,让我们的工程师做大量的无味工作。   回复  引用    

#7楼 [楼主] 2007-08-14 12:59 AA()      

。。。。这个跟专业 不是很大的问题,
但是这个 确实需要我门大家考虑的问题,
可以从这里认识到很多东西,不要盲目的去用什么,而不知道 具体的原理。。   回复  引用  查看    

#8楼  2007-08-15 08:54 海潮的博客      

你这个不也是一个包装器!   回复  引用  查看    

#9楼  2007-08-16 17:51 yaksea [未注册用户]

我做了个项目模板,使用这个项目模板,你可以开发moss自定义项目就像开发一个Web Application
http://www.cnblogs.com/yaksea/archive/2007/07/18/822615.html   回复  引用    

#10楼  2007-09-13 15:36 xmchyabi [未注册用户]

这个写法跟我的一样..http://blog.sina.com.cn/s/blog_4925e2f901000ati.html
我也不爱用控件包装器.

这样写同样可以自定义属性..然后在ascx那边取到属性值....
  回复  引用    

#11楼  2007-12-07 15:23 sc [未注册用户]

挺不错的!   回复  引用    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2007-09-15 12:11 编辑过
 
另存  打印