1

我的问题与以编程方式写入“Note”类型的 Sharepoint 列表字段有关。从现场读取是直截了当的。

//Retrieving the list row
SPListItem baseItem = baseList.GetItemById(itemId) as SPListItem;  

string value = Convert.ToString(baseItem["NameOfTheNoteField"]); 

但后来我尝试写入一个注释字段;

SPListItem item ...;
item["NameOfTheNoteField"] = "MyValue";

它会导致以下错误:

值不在预期范围内...

如果不是字符串,Note 字段期望什么!?

4

1 回答 1

1

您实际上不应该将其视为Note字段,而应将其视为SPMultiLineText字段。

要更新它,您首先需要获取当前值并对其进行编辑-您也不应该使用Convert.ToString()它,但是GetFieldValueAsHtmlor GetFieldValueAsText。最终,您设置值的方式应该有效。Value does not fall within the expected range也可能来自其他地方 - 例如,您没有使用正确的字段名称,因此item["NameofNoteField"]会引发错误。尝试调试它。

以您的示例并更新该字段中的当前文本:

SPListItem baseItem = baseList.GetItemById(itemId) as SPListItem;
SPFieldMultiLineText mlfield = baseItem.Fields.GetField("NameOfTheNoteField") as SPFieldMultiLineText;
string fieldtext = multilineField.GetFieldValueAsHtml(item["NameOfTheNoteField"], baseItem );
//or use GetFieldValueAsText
fieldtext += "I am the update of the text";
baseItem ["NameOfTheNoteField"] = fieldtext;
baseItem.Update()
于 2012-12-19T08:34:45.930 回答