SharePoint-WebPart中动态选择站点和列表

来源:互联网 发布:北京网络电视台客户端 编辑:程序博客网 时间:2024/06/04 20:09

在刚接触SharePoint的WebPart开发时,如果实现过程中需要指定一个站点或列表时,常见的实现方式

是创建对应的属性用以存储站点或列表的设置。

但是,这种实现方式不人性化,而且容易出错。试想一下:在一个大点的站点中,谁会记得某个列表的名称呢?

如果,我们能够给出一个站点的下拉列表或可用列表的下拉列表以供选择,这样不是很好?

----

在我的开发过程中,我使用EditorPart来达到这种实现效果《使用一般ASP.NET 控件开发中的ControlDesigner应该也可以

实现,但我没有试验过》,EditorPart的原理及实现方式大家可以在园子里搜搜。

----

实现了动态选择后,在需要使用该效果的webpart中,只需要重写其CreateEditorParts方法,并在其中加入实现该效果的EditorPart即可,比如:


 1//大体示例如下:
 2//因为在家里私人电脑上《无相关环境》写例子,完全凭想像
 3//因此,不敢保证某些变量、方法名、参数名正确。
 4//但方式完全正确。
 5public override EditorParts CreateEditorParts()
 6{
 7   List<EditorPart> newParts=new List<EditorPart>();
 8   WebAndSingleListSelectEditorPart part1=new WebAndSingleListSelectEditorPart(this);
 9   part1.InitListTemplateTypes(SPListTemplateType.Links,SPListTemplateType.DocumentLibrary); //初始化需要选择的列表类型
10   //还可以指定WebPart中存放WebID和被选择的列表名的属性
11   //使用方式在代码中有相关注释
12   part1.ID="****";
13   part1.Title="单站点单列表选择区域";
14   newParts.Add(part1);
15   ----可以加入多个其它的EditorParts
16   EditorParts existParts=base.CreateEditorParts();
17   return new EditorParts(existParts,newParts);
18}

19

 

这样就可以动态的选择站点和列表。

在我提供的包里,提供了两种效果

1、单站点、单列表选择:也就是通过该EditorPart可以选择一个站点,以及该站点下的某个列表,并存放站点ID和列表名到对应的WebPart的对应属性中。(可以在声明EditorParts时通过构造函数或实例属性指定对应的属性名称)。
EditorPart名为:WebAndSingleListSelectEditorPart

2、单站点选择:也就是通过该EditorPart可以选择一个站点,并存放站点ID到对应WebPart的对应属性中。
EditorPart名为:SingleWebSelectEditorPart

两个效果都使用到了一个反射工具类(ReflectionUtility),一同提供在了包中。

单站点、多列表选择的效果就不提供了

^_^因为该效果我也没写,而且使用场景比较少。

-----

欢迎大家下载试用,并给出相应的改进及指正。

McJeremy&Xu原创,欢迎转载,但请保留http://www.cnblogs.com/McJeremy地址说明。

源码下载:/Files/McJeremy/EditorParts.rar

原创粉丝点击