Sharepoint 2010 以编程方式将数据复制到SpFieldChoice字段SharePoint 2010时出错
我是sharepoint新手,我有一个从SpFieldChoice派生的自定义字段类型,我的字段允许用户选择多个值,我需要用新列替换一些旧的自定义列,并将旧列中的数据复制到新列。旧列还允许用户通过勾选复选框选择多个值,我有以下代码将数据复制到新字段Sharepoint 2010 以编程方式将数据复制到SpFieldChoice字段SharePoint 2010时出错,sharepoint-2010,Sharepoint 2010,我是sharepoint新手,我有一个从SpFieldChoice派生的自定义字段类型,我的字段允许用户选择多个值,我需要用新列替换一些旧的自定义列,并将旧列中的数据复制到新列。旧列还允许用户通过勾选复选框选择多个值,我有以下代码将数据复制到新字段 foreach (SPListItem item in list.Items) { if (item[oldField.Title] == null) { item[newFld.Title] = string.Emp
foreach (SPListItem item in list.Items)
{
if (item[oldField.Title] == null)
{
item[newFld.Title] = string.Empty;
item.Update();
}
else
{
string[] itemvalues = item[oldField.Title].ToString().Split(new string[] {";#"}, StringSplitOptions.None);
StringBuilder multiLookupValues = new StringBuilder();
multiLookupValues.Append(";#");
for (int cnt = 0; cnt < (itemvalues.Length) / 2; cnt++)
{
multiLookupValues.Append (itemvalues[(cnt * 2) + 1].ToString() + ";#");
}
item[newFld.Title] = multiLookupValues.ToString();
item.SystemUpdate(false) ;
}
}
在生成的stringbuilder的长度小于255个字符之前,此代码工作正常,但当此长度大于255时,我会得到以下异常。
无效的选择值。选择字段包含无效数据。请检查该值,然后重试
是否有其他方法将数据复制到SpFiledChoice,如何解决此问题?请帮助我。多次更新,以使字符串不超过-即值+=。然而,如果问题是价值不能超过255,那么你必须考虑你是如何做选择的。如果它超过了长度,并且多次更新该值不起作用,并且站点列也会有相同的限制,那么您可以做下一件最好的事情: 1创建一个包含选项的新列表 2将目标字段更改为查找 3对从查找字段提取ID的每个项目进行相应更新 这是没有限制的 大卫·斯特林 大卫_sterling@sterling-咨询网
www.sterling-consulting.com谢谢david,但由于我是sharepoint新手,我不理解第三部分,请您用代码详细说明一下好吗?