我是 sharepoint 的新手,我有一个从 SpFieldChoice 派生的自定义字段类型,我的字段允许用户选择多个值,我需要用新列替换一些旧的自定义列并将旧列中的数据复制到新列. 旧列还允许用户通过勾选复选框来选择多个值,我有以下代码将数据复制到新字段。
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 charachters ,但是当这个长度大于 255 时,我得到以下异常。无效的选择值。选择字段包含无效数据。请检查值并重试。
有没有其他方法可以将数据复制到 SpFiledChoice,我该如何解决这个问题?请帮我。