默认情况下,MOSS具有的用户选择器非常不方便,我们的领导希望用组织目录树的方式来进行人员的选择,当然,这可难倒我了。最后我选择了自定义字段来进行开发,解决这样的问题。不知道是否也有人和我碰到同样的问题呢。
那么,首先我们来看moss默认的用户选择器
那么,首先我们来看moss默认的用户选择器
这个界面很适合老外的简单操作的风格,但是对于有中国特色的组织那就没有办法了。
那么,我们通过开发一个自定义字段来解决这样的一些问题。
首先我们把编写好的自定义字段安装上去,该步骤省略,等我的整体解决方案公布后会提供安装的方法,现在由于只是DEMO,就没有直接放代码了。
我们可以看到下图
![2](http://blog.lickies.cn/document/photo/2/2.gif)
已经有了用来调用组织单位的目录树的自定义字段了。
设置标题为选择人员,点击确定得到下图
![3](http://blog.lickies.cn/document/photo/2/3.gif)
从这个图中我们可以看出这个自定义字段有两个控件,一个是文本框,用来存储你选择的用户,另外一个是连接,由于用户选择器一般都比较大,我选择新弹出窗口来实现,而不直接写到自定义字段内,新弹出的窗口是一个标准的ASPX的文件,我们可以把它部署在_LAYOUTS目录地下。
下面我们点击选择,就会跳出下面的窗口
![4](http://blog.lickies.cn/document/photo/2/4.gif)
从这张图中你就可以看出大概的样子了。
左边这个是用TREEVIEW递归读取的AD的组织结构
当我们点击某个部门的时候,他将列举出该部门下的所有人员,如下图
细心的同学可以发现在中间的框里有一个包含下级的选择框,当我们打勾后将出现该部门的下属部门的所有人员,方便管理人员选择他的直接下级。
在人员列出后,我们打勾进行人员选择,点旁边的>>号即可将这些人员提交到第三栏,当前选择人员中。如下图
![7](http://blog.lickies.cn/document/photo/2/7.gif)
点击确定后,我们将回到MOSS界面,同时也会将值传递到刚才那个文本框里,如下图(注意:这里我们存储的是中文的名称,但是这并不妨碍我们实际存储的值为LOGinNAME。)
最后我们将该记录保存,在查看视图中可以发现,我们的记录事实上是以登录的帐号来进行保存的,以确定唯一性,如下图
![8](http://blog.lickies.cn/document/photo/2/8.gif)
最后我们将该记录保存,在查看视图中可以发现,我们的记录事实上是以登录的帐号来进行保存的,以确定唯一性,如下图
![9](http://blog.lickies.cn/document/photo/2/9.gif)
好了。演示完毕,
目前只是demo,接下来还要做的是整理成WSP包,以及存储成user字段,参数设置等调整,请大家耐心等待。如果有什么问题,请到我的BLOG进行留言。
整个项目文件在此下载
目录树的.net程序在此下载