为什么我在检索 SharePoint 列表字段的值之前获取"string;"文本?



我对**.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();
}

我正在迭代一个名为etichettaCorrentList的SharePoint列表,并为每一行检索特定字段的值。

它工作,但问题是这条线:

string valore = eitchettaCorrenteList.Items[i][valoreColonnaIniziativaInternalName].ToString();

返回一个奇怪的值,该值包含期望值(包含在我的列表中的值(,前面有一个代码,该代码不是所选字段值的一部分,类似于:string#S01-INIZIATIVA EUROPA 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]);

相关内容

  • 没有找到相关文章

最新更新