我想碰碰运气问一个问题,因为我实在找不到这个问题的根本原因。
我正在做一个WSS 3.0网站,使用SPD 2007,总的来说,我对Sharepoint开发还是个新手。
我正在定制disform。aspx页面。该页面是一个简单的编辑页面,但在最后,我添加了一个自定义列表表单web部件,用于添加评论(存储在另一个列表中),并在下面添加了一个数据视图,用于查看与disform显示的项目相关的评论。aspx页面。
我想做的类似于这个页面上显示的功能,我从它的启发,你可以看到我的评论作为最新的一个:http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=209
一切都在工作,直到我删除了所有的评论,我做了一个测试。现在我从自定义列表表单中得到的是"无法显示此web部件错误"。
我已经看了一下日志,我明白它在抱怨什么,但我不知道如何修复它,甚至不明白为什么会出现这样的错误。
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上得到一个错误。它试图得到什么,我如何修复它?
最后,我没有更改SPD创建的CAML查询。我确实对Comments列表进行了更改,例如重命名或删除未使用的列,但我不认为这是问题的原因,因为删除自定义列表表单并重新创建它并没有解决问题。
有任何线索,我应该看哪里或什么?我没主意了。
谢谢。
- 在Sharepoint设计器中,打开插入"Comments"自定义列表表单的disform。
- 在代码视图中,找到列表的DataFormWebPart。
- 找到
<SharePoint:SPDataSource runat="server" DataSourceMode="ListItem"
行,将DataSourceMode更改为DataSourceMode="List"
- 在ParameterBindings中,找到
<ParameterBinding Name="ListItemId".....
并将其更改为<ParameterBinding Name="ListItemId" Location="None" DefaultValue="0"/>