我的问题涉及以编程方式写入“Note”类型的Sharepoint列表字段。从现场阅读很简单。
//Retrieving the list row
SPListItem baseItem = baseList.GetItemById(itemId) as SPListItem;
string value = Convert.ToString(baseItem["NameOfTheNoteField"]);
但后来我尝试写一个Note字段;
SPListItem item ...;
item["NameOfTheNoteField"] = "MyValue";
导致以下错误:
价值不在预期范围内......
如果不是字符串,Note字段会有什么期望!?
答案 0 :(得分:1)
您实际上不应将其视为 Note 字段,而是SPMultiLineText
字段。
要更新它,您首先需要获取当前值并对其进行编辑 - 除了Convert.ToString()
或GetFieldValueAsHtml
之外,您也不应该使用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()