我正在尝试从SharePoint列表中获取列值并将其填充到ASP文本框中。我使用SPQuery
来过滤并获取值。我甚至提到了视图字段并增加了列表视图查找阈值。但是当我尝试使用列字段分配文本框值时,我得到了这个例外:
用户值未处理参数异常未达到预期范围。
这有什么解决方法吗?代码示例:
SPQuery qrySeriesDesc = new SPQuery();
qrySeriesDesc.Query = "<Where><Eq><FieldRef Name='Series'/><Value Type='Text'>" + SeriesNumber + "</Value></Eq></Where>";
qrySeriesDesc.ViewFields = "<FieldRef Name='Series Description'/>";
SPListItemCollection itemCol = list.GetItems(qrySeriesDesc);
foreach (SPListItem item in itemCol)
{
if (item != null)
{
tboxSeriesDescription.Text = item["Series Description"].ToString();
}
}
我收到了上述例外情况:
tboxSeriesDescription.Text = item["Series Description"].ToString();
答案 0 :(得分:0)
尝试从字段中获取,而不是从项目中获取
SPField fieldSerDesc = item.Fields.GetFieldByInternalName("SeriesDescription"); //internal name of your fields. Usually eq StaticName.
tboxSeriesDescription.Text = item[fieldSerDesc.Id].ToString();
或者,如果您的字段是查找,例如,您可以这样做:
SPFieldLookup fieldSerDesc = (SPFieldLookup)item.Fields.GetFieldByInternalName("SeriesDescription");
tboxSeriesDescription.Text = fieldSerDesc.GetFieldValueAsText(item[fieldSerDesc.Id]);
}
答案 1 :(得分:0)
您收到错误,因为该字段不存在或拼写错误。
请注意,如果选择不存在的列,则SharePoint不会引发任何错误。
尝试使用Sharepoint Manager之类的工具检查字段的名称,并始终使用内部名称