1

私の質問は、「メモ」タイプの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 フィールドは何を期待しますか!?

4

1 に答える 1

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()
于 2012-12-19T08:34:45.930 に答える