博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(转)SharePoint对象模式获取“用户或用户组”栏的值
阅读量:4684 次
发布时间:2019-06-09

本文共 1288 字,大约阅读时间需要 4 分钟。

    1. 如果您采用item["***"].ToString()这样的形式的话,输出的每一个人或组的信息前都有N#这样的符号。
      很显然,很多时候采用这种方式时,我们不得不对字符串进行分析并截取。
    2. “用户或用户组”类型的在对象模型中,有其对应的类型: SPFieldUser,通过它,我们就可以获取到某一个
      用户或用户组栏的对象模型了,如:SPFieldUser uField=item["***"] as SPFieldUser;
    3. “用户或用户组”中,您可以输入用户,也可以输入用户组
    4. “用户或用户组”类型栏的值的获取实际上是通过SPFieldUserValueCollection和SPFieldUserValue来获取的,
      而SPFieldUserValue指的是某一个人或某一个组。
    5. SPFieldUserValueCollection的获取方法 : SPFieldUserValueCollection users=item["栏名"] as SPFieldUser
      ValueCollection.   那获取SPFieldUserValue呢? 当然,您可以通过users的迭代来获取,但是,某种情况下,这种方法行不通:当你没有启用“用户或用户 组”这一栏“允许多重选择”时,通过上述方法获取的users将为null,可能你会有如下的方法来获取 SPFieldUserValue user=item["栏名"] as SPFieldUserValue。
      唉,我也通过这种方法来获取,但是非常遗憾的是,系统友好的提示我:此路不通!
    6. 牢 骚:为什么在“允许多重选择”的情况下,通过SPFieldUserValueCollection users=item["栏名"] as SPFieldUserValueCollection就可以,而没启用的情况下用SPSPFieldUserValue user=item["栏名"] as SPFieldUserValue就行不通呢?这二个用法在针对是否启用“允许多重选择”下,是合情合理的啊?不管你怎么想,它就是行不通。
    7. 实际上,在没有“允许多重选择”的情况下,您得通过SPFieldUserValue的构造函数来初始化一个对象,如:

      SPFieldUserValue usere = new SPFieldUserValue(web, item["栏目名"].ToString());

      够折腾人的吧?

    8. 获得了SPFieldUserValueCollection和SPFieldUserValue对象后,该如何获取它里面的用户或用户组呢?

      获取用户:使用SPFieldUserValue的User属性。
      获取用户组:当SPFieldUserValue的User属性为null的时候,通过web.SiteGroups.GetByID(SPFieldUserValue.LookupID)来获取用户组。

转载于:https://www.cnblogs.com/q149072205/archive/2012/12/06/2805599.html

你可能感兴趣的文章
Open vSwitch安装
查看>>
【Android】 No Activity found to handle Intent.
查看>>
Mysql 模糊匹配(字符串str中是否包含子字符串substr)
查看>>
C++ sort简单用法
查看>>
IIS的ISAPI接口简介
查看>>
python:open/文件操作
查看>>
16 乘法口诀输出
查看>>
mac 常用地址
查看>>
鼠标经过切换图片
查看>>
流程控制 Day06
查看>>
Linux下安装Tomcat
查看>>
windows live writer 2012 0x80070643
查看>>
C程序的启动和终止
查看>>
asp.net web 定时执行任务
查看>>
tomcat 和MySQL的安装
查看>>
11.5 内部类
查看>>
Cosine Similarity
查看>>
浅谈JAVA集合框架
查看>>
halt和shutdown 的区别
查看>>
git常用操作
查看>>