Почему я получаю "строку"; текст перед значением поля списка SharePoint, когда я его получу?
Я довольно новичок в **.NET** и, более того, в SharePoint, и у меня возникла следующая проблема при работе над проектом SharePoint 2013.
В мой код я делаю:
for (int i = 0; i < eitchettaCorrenteList.Items.Count; i++)
{
string valoreColonnaIniziativaInternalName = eitchettaCorrenteList.Fields[nomeColonna].InternalName;
string valore = eitchettaCorrenteList.Items[i][valoreColonnaIniziativaInternalName].ToString();
}
Я перебираю список SharePoint с именем etichettaCorrentList и для каждой строки извлекаю значение определенного поля.
Это работает, но проблема в том, что эта строка:
string valore = eitchettaCorrenteList.Items[i][valoreColonnaIniziativaInternalName].ToString();
возвращает странное значение, которое содержит ожидаемое значение (то, которое содержится в моем списке), которому предшествует код, который не является частью значения выбранного поля, что-то вроде: string; # S01-INIZIATIVA EUROPA 1 TEST
Что это за строка?? Почему я это получаю? Как я могу правильно удалить или не получить эту строку; до желаемой информации? Что случилось? Что мне не хватает?
1 ответ
Используйте эту ссылку.
Здесь существует ответ на ваш вопрос. Ваш тип поля: SPFieldCalculated. Используйте такой код:
var item = eitchettaCorrenteList.Items[i];
var field = eitchettaCorrenteList.Fields[nomeColonna];
string valoreColonnaIniziativaInternalName = field.InternalName;
if (field.Type.Equals(SPFieldType.Calculated)) {
}
SPFieldCalculated cf = (SPFieldCalculated)field;
string valore = cf.GetFieldValueForEdit(item[valoreColonnaIniziativaInternalName ]);
// or
// string valore = cf.GetFieldValueAsText(item[valoreColonnaIniziativaInternalName ]);
}
else {
string valore = item[valoreColonnaIniziativaInternalName].ToString();
}
Или, может быть, это будет работать правильно во всех случаях:
var item = eitchettaCorrenteList.Items[i];
var field = eitchettaCorrenteList.Fields[nomeColonna];
var value = field.GetFieldValueAsText(item[field.InternalName]);