Sharepoint:如何获取自定义列的值

时间:2010-07-27 14:40:33

标签: sharepoint sharepoint-2007

我在Sharepoint中列出了两个新的自定义列“第一行审批者”和“第二行审批者”。 此列的类型为“人员或组”,“允许多个选择”设置为“是”。

如何获取自定义列的值?

我尝试这种方法:

string Name = item["Name"] as string;
string ModifiedBy = item["Modified By"] as string;
string FirstLineApprovers = item["First line approvers"] as string;
string SecondLineApprovers = item["Second line approvers"] as string;

并且对于前两列,我获得了正确的值:

"New Text Document.txt"
"1;#SHAREPOINT\\Administrator"

但是对于我的新专栏,我获得了

null
null

但这列有值!!!

“第一线批准者”

SHAREPOINT\user1
SHAREPOINT\user2
SHAREPOINT\user3

和“第二行审批人”

SHAREPOINT\user4

有什么问题以及如何获取此列的值?

4 个答案:

答案 0 :(得分:3)

我解决了我的问题。

正确的是投射到 SPFieldUserValueCollection 而不是字符串

SPFieldUserValueCollection FirstLineApprovers = (SPFieldUserValueCollection ) item["First line approvers"];

foreach (SPFieldUserValue userValue in FirstLineApprovers)
{
  //...
}

答案 1 :(得分:0)

我会看看你是如何访问这些列的。由于返回的值为null,因此它似乎无法根据您提供的名称引用列。创建自定义列时,请指定名称和显示名称。尝试将“第一行批准者”更改为列的名称(假设您现在使用的是显示名称)

您能提供有关列的更多信息吗?我假设数据类型是SPListItem,但了解您添加的自定义列的属性会很有帮助。

答案 2 :(得分:0)

如果您的自定义列是使用浏览器创建的,请尝试:

string FirstLineApprovers = item["First_x0020_line_x0020_approvers"] as string; 
string SecondLineApprovers = item["Second_x0020_line_x0020_approver"] as string; 

答案 3 :(得分:0)

获取SharePoint Manager 2007或2010(http://spm.codeplex.com)以检查字段的InternalName属性,因为这是item []使用的属性。

虽然小心 - 虽然你可以用它来改变属性,但你不应该这样做!