Невозможно отобразить ошибку веб-части в пользовательской форме списка (новый элемент) - PullRequest
0 голосов
/ 22 ноября 2011

Я возьму свой шанс задать вопрос здесь, потому что я действительно не могу найти основную причину этой проблемы.

Я работаю на сайте WSS 3.0, использую SPD 2007, и я довольно новичок в разработке Sharepoint в целом.

Я настраиваю страницу DispForm.aspx. Страница представляет собой простую страницу редактирования, но в конце я добавляю веб-часть настраиваемой формы списка для добавления комментариев (которые хранятся в другом списке) и ниже - представление данных для просмотра комментариев, связанных с элементом, отображаемым в DispForm.aspx. стр.

То, что я хочу сделать, напоминает функциональность, отображаемую на этой странице, я вдохновился этим, и вы можете увидеть мои комментарии как самые последние: http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=209

Все работало, пока я не удалил все комментарии, которые я сделал в качестве теста. Теперь все, что я получаю из своей пользовательской формы списка, это «невозможно отобразить эту ошибку веб-части».

Я посмотрел журналы, я понимаю, на что они жалуются, но я понятия не имею, как это исправить, или даже не понимаю, почему возникает такая ошибка.

SPDataSourceView.ExecuteSelect() - selectArguments: IsEmpty=True, MaximumRows=0, RetrieveTotalRowCount=False, SortExpression=, StartRowIndex=0, TotalRowCount=-1
Error while executing web part: System.InvalidOperationException: Unable to open the specified list item. ---> 
System.ArgumentException: **Value does not fall within the expected range**.     
at Microsoft.SharePoint.SPList.**GetItemById**(Int32 id, String strRootFolder, Boolean cacheRowsetAndId)     
at Microsoft.SharePoint.SPList.GetItemById(Int32 id)     
at Microsoft.SharePoint.WebControls.SPDataSourceView.ExecuteSelect(DataSourceSelectArguments selectArguments)     --- End of inner exception stack trace ---     
at Microsoft.SharePoint.WebControls.SPDataSourceView.ExecuteSelect(DataSourceSelectArguments selectArguments)     
at System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback)     
at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigatorInternal()     
at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigator()     
at Microsoft.SharePoint.WebControls.SingleDataSource.GetXPathNavigator(IDataSource datasource, Boolean originalData)     
at Microsoft.SharePoint.WebPartPages.DataFormWebPart.GetXPathNavigator(String viewPath)     
at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform()
InnerException 1: System.ArgumentException: Value does not fall within the expected range.     
at Microsoft.SharePoint.SPList.GetItemById(Int32 id, String strRootFolder, Boolean cacheRowsetAndId)     
at Microsoft.SharePoint.SPList.GetItemById(Int32 id)     
at Microsoft.SharePoint.WebControls.SPDataSourceView.ExecuteSelect(DataSourceSelectArguments selectArguments)

мы говорим о форме «новый элемент», поэтому я не понимаю, почему я получаю ошибку в GetItemById. Что он пытается получить и как это исправить?

Наконец, я не изменил CAML-запрос, созданный SPD. Я внес изменения в список комментариев, такие как переименование или удаление неиспользуемых столбцов, но я не думаю, что это является причиной проблемы, потому что удаление пользовательской формы списка и воссоздание ее не решило проблему.

Есть какие-нибудь подсказки относительно того, где или на что мне следует смотреть? Я свежая из идей.

Спасибо.

1 Ответ

1 голос
/ 10 августа 2012
  1. В Sharepoint Designer откройте DispForm, в который вы вставили форму настраиваемого списка «Комментарии».
  2. В представлении «Код» найдите DataFormWebPart для списка.
  3. Найдите строку <SharePoint:SPDataSource runat="server" DataSourceMode="ListItem" и измените DataSourceMode на DataSourceMode="List"
  4. Внутри Привязки параметров найдите <ParameterBinding Name="ListItemId"..... и измените его на <ParameterBinding Name="ListItemId" Location="None" DefaultValue="0"/>
...