我有以下幫助器方法,它返回字段中的值。訪問SPListItem中的字段值時出現意外的參數錯誤
public static string GetValueFrom(SPListItem item, string fieldName)
{
string value = string.Empty;
if (item.Fields.ContainsField(fieldName))
{
SPField field = item.Fields.GetField(fieldName);
if (item[field.InternalName] != null)
{
value = item[field.InternalName].ToString();
}
}
return value;
}
然而,對於一個場(正常選擇欄)我在此行
if (item[field.InternalName] != null)
得到一個ArgumentExecption我使用
SPListItem item = list.GetItemById(itemId);
爲了獲得該項目。
我無法找到爲什麼當我檢查字段是否存在時,我得到異常? 任何想法,爲什麼我只有一個領域得到這個例外。
更新。
調試時
對GetField()的調用返回正確的字段對象。 Field.InternalName包含字段的正確內部名稱 如果我嘗試使用item [「字段的內部名稱」]訪問該值,它仍然會拋出並且只有這一個字段出現異常。
非常好奇。我嘔吐,但還有其他一些事情要嘗試。 1)如果您嘗試通過Guid訪問該字段,該怎麼辦?例如:'item [field.Id]'。 2)如果你通過索引遍歷'item'的所有字段? ex'item [0]','item [1]'...只是爲了看看什麼是可用的? – CBono 2010-09-15 12:48:04
我沒有想過試用Guid方法,我會給它一個測試併發布反饋,謝謝 – 2010-09-15 14:09:32
Guid方法沒有運氣,重新從零開始重新列表並解決了問題。 – 2010-09-15 15:16:47