Sharepoint:如何获取自定义列的值
我在Sharepoint中有两个新的自定义列“一线审批人”和“二线审批人”。 此列的类型为“个人或组”,且“允许多选”设置为“是” 如何获取自定义列的值 我尝试这种方法:Sharepoint:如何获取自定义列的值,sharepoint,sharepoint-2007,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
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
但是这个栏目有价值
“一线审批人”
和“第二线审批人”
有什么问题,以及如何获取这些列的值?我将了解您是如何访问这些列的。由于返回值为null,因此它似乎无法根据您提供的名称引用列。创建自定义列时,需要指定名称和显示名称。尝试将“第一行审批人”更改为列的任何名称(假设您现在使用的是显示名称)
你能提供更多关于这些栏目的信息吗?我假设数据类型为SPListItem,但了解您添加的自定义列的属性会很有帮助。如果您的自定义列是使用浏览器创建的,请尝试:
string FirstLineApprovers = item["First_x0020_line_x0020_approvers"] as string;
string SecondLineApprovers = item["Second_x0020_line_x0020_approver"] as string;
我解决了我的问题
正确的方法是强制转换为SPFieldUserValueCollection,而不是string
SPFieldUserValueCollection FirstLineApprovers = (SPFieldUserValueCollection ) item["First line approvers"];
foreach (SPFieldUserValue userValue in FirstLineApprovers)
{
//...
}
让SharePoint Manager 2007或2010()检查字段的InternalName属性,因为这是项[]使用的属性
不过要小心——虽然您可以使用它来更改属性,但不应该 +1:这个答案是正确的。您可以看到,
as string
类型转换失败,因为无法将SPFieldUserValueCollection
大小写转换为string。因为您使用了防御性作为字符串
语法,所以没有例外;仅null
。
string FirstLineApprovers = item["First_x0020_line_x0020_approvers"] as string;
string SecondLineApprovers = item["Second_x0020_line_x0020_approver"] as string;
SPFieldUserValueCollection FirstLineApprovers = (SPFieldUserValueCollection ) item["First line approvers"];
foreach (SPFieldUserValue userValue in FirstLineApprovers)
{
//...
}