参数异常 - 值不在预期范围内

时间:2015-06-23 19:40:48

标签: c# asp.net sharepoint

我正在尝试从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();

2 个答案:

答案 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之类的工具检查字段的名称,并始终使用内部名称