错误:当你使用id作为sharepoint的自定义页面的查询参数时,总会提示项目不存在!

No item exists at http://SERVER/SITE/mypage.aspx?ID=1. It may have been deleted or renamed by another user

  • Email
  • Print

Source: Microsoft Support

RAPID PUBLISHING

RAPID PUBLISHING ARTICLES PROVIDE INFORMATION DIRECTLY FROM WITHIN THE MICROSOFT SUPPORT ORGANIZATION. THE INFORMATION CONTAINED HEREIN IS CREATED IN RESPONSE TO EMERGING OR UNIQUE TOPICS, OR IS INTENDED SUPPLEMENT OTHER KNOWLEDGE BASE INFORMATION.

Symptom

Consider the following scenario:

We have custom pages using the Data Form Web Part to display information. The main information is stored in a SharePoint custom list and a SharePoint custom document library. All of the data and the pages exist in the same sub-site.

The query string is defined as follows:

  • On the details page:

    • The details page is displayed with details.aspx?ID=xx.
  • In the datasource listing:
    • <ParameterBinding Name="CustomItem" Location="QueryString(ID)" DefaultValue="1"/>
  • In the xslt:
    • <xsl:param name="CustomItem">1</xsl:param> 
      <xsl:variable name="Rows" select="/dsQueryResponse/Custom_Listings/Rows/Row[@ID = $CustomItem]" />

In this scenario, we receive the following error message:

w3wp.exe (0x1104)    0x1670 CMS    Publishing    8vzh
Unexpected PortalSiteMapProvider was unable to fetch current node, request URL:
/example/path/here/custom/pages/opportunitydetails.aspx, message: No item exists at http://SERVER/example/path/here/custom/pages/opportunitydetails.aspx?ID=20. It may have been deleted or renamed by another user., stack trace: at Microsoft.SharePoint.SPContext.get_Item() at Microsoft.SharePoint.SPContext.get_ListItem() at Microsoft.SharePoint.Publishing.Navigation.PortalSiteMapProvider.get_CurrentNode()

Cause

When we try passing the Query Parameter Name as ID to the .aspx Page (which itself is the record in the document library) Sharepoint loses track of what ID is used for. Sharepoint no longer knows if ID is the document in the document library or the ID of the listItem which we need to update using this .aspx page. This problem happens because Sharepoint has its own variable named ID which it uses to identify documents/pages on the server. Our solution should not be using a variable named ID.

Resolution

Change the query string parameter from ID to CustomID. Then change the details page from QueryString(ID) to QueryString(CustomID). Once this is done the page will display with no errors.

More Information
DISCLAIMER

MICROSOFT AND/OR ITS SUPPLIERS MAKE NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY, RELIABILITY OR ACCURACY OF THE INFORMATION CONTAINED IN THE DOCUMENTS AND RELATED GRAPHICS PUBLISHED ON THIS WEBSITE (THE “MATERIALS”) FOR ANY PURPOSE. THE MATERIALS MAY INCLUDE TECHNICAL INACCURACIES OR TYPOGRAPHICAL ERRORS AND MAY BE REVISED AT ANY TIME WITHOUT NOTICE.

TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND/OR ITS SUPPLIERS DISCLAIM AND EXCLUDE ALL REPRESENTATIONS, WARRANTIES, AND CONDITIONS WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT LIMITED TO REPRESENTATIONS, WARRANTIES, OR CONDITIONS OF TITLE, NON INFRINGEMENT, SATISFACTORY CONDITION OR QUALITY, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WITH RESPECT TO THE MATERIALS.

Properties

Article ID: 972225 - Last Review: 06/08/2009 10:25:42 - Revision: 1.0

Applies to

  • Microsoft Office SharePoint Server 2007
  • Microsoft Windows SharePoint Services 3.0

Keywords:

  • kbrapidpub kbnomt KB972225
时间: 2024-08-16 17:54:42

错误:当你使用id作为sharepoint的自定义页面的查询参数时,总会提示项目不存在!的相关文章

SharePoint开发 - 自定义页面(错误页、登出页)

本文叙述如何自定义SharePoint的固有页面,比较简单,用一句话说就是“做个页面,写一句代码.” 创建SharePoint空解决方案,添加Layouts映射文件夹,添加页面文件error.aspx和signout.aspx. error.aspx [html] view plaincopyprint? <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %> <%@ Import Namespace=

SharePoint 2010 自定义页面出现“项目可能已被其他用户删除或重命名”问题跟踪

异常详细信息: Microsoft.SharePoint.SPException: 位置 http://portal/Pages/ShowArticle.aspx?id=19&mylist=866e1c61-f4a5-46ec-9773-9bb1caf1109c 处不存在任何项目.项目可能已被其他用户删除或重命名. 解决方式:自定义的页面中,参数名称不能使用ID,List,View等系统已经使用的.调试的时候不会出现什么症状,但是实际部署好后,会随机出现以上错误,请小心使用. 堆栈跟踪: [SP

SharePoint 2010 自定义基于SQL表单身份验证的登录页面

当为SharePoint 2010 WebApplication配置了以混合模式(FBA Authentication和Windows Authentication)登陆后,我们当然可以自定义登陆页面(Sign in Page). 一.登陆SharePoint 2010 Central Administratio后,找到对应的WebApplication,指定其Sign in Page Url即可,如下所示: 二.创建自定义登录项目 首先,为了创建自定义的登陆页,我选择了Application

SharePoint 2013:自定义ECB菜单项的添加

本文分别介绍了两种常用的添加ECB菜单项的方式. 声明式创建 这也是微软最佳实践推荐的方式.在VS中创建一个SharePoint空解决方案,并添加一个“空元素”类型的SPI. 在Elements.xml中,定义一个CustomAction,重点关注一下其中高亮部分的属性(本例在文档内容类型的项上添加了一个菜单项,点击导航到一个自定义应用程序页面,并传递项所在的列表的Id作为参数): 添加到Feature,并部署.效果如下: 服务器对象模型创建 这里会用到Feature的事件处理程序.本例同时还演

SharePoint 2013 自定义扩展菜单(二)

原文:SharePoint 2013 自定义扩展菜单(二) 接博文<SharePoint 2013 自定义扩展菜单>,多加了几个例子,方便大家理解. 例七 列表设置菜单扩展(listedit.aspx) 扩展效果 XML描述 <CustomAction Id="CustomAction1" Description="博客园-霖雨" Title="博客园-霖雨" GroupId="GeneralSettings"

每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询

前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoint 自定义列表项添加callout菜单.希望能够给大家带来一些帮助. 1.  在aspx页引用可视化Web部件 有时候会需要在页面中引用项目中创建的可视化Web部件,具体步骤有以下这几步: 1) 在aspx页面顶部注册该可视化Web部件 示例如下: <%@ Register Tagprefix=&qu

为sharepoint的内部页面添加后台代码

我们知道,存储在数据库里的SharePoint页面是不能直接添加后台代码的,这给我们带来了很多的不方便,比如想要在页面上实现一些东西,都必 须使用Webpart或者自定义控件的方式,哪怕仅仅是很简单的几行后台代码.而WSS 3.0 是基于ASP.NET 2.0的,在ASP.NET站点里使用的任何技术在WSS站点里同样可以使用.因此我们同样可以给WSS站点的页面添加后台代码. 存储在数据库中的sharepoint页面分为两部门,母板页和内容页,我们可以为这两种页面分别添加后台代码.实现方式不一样,

SharePoint 2013 自定义扩展菜单

原文:SharePoint 2013 自定义扩展菜单 在对SharePoint进行开发或者功能扩展的时候,经常需要对一些默认的菜单进行扩展,以使我们开发的东西更适合SharePoint本身的样式.SharePoint的各种功能菜单,像网站设置.Ribbon.列表里的下拉等等,都是一样原理的,都是XML+JS脚本实现的,如果想实现这些功能,只需要一个XML发布成Feature,并在网站功能启用,即可. 其实,关于这个并没有什么过多可以说的东西,大家在实践中,渐渐理解了.下面,我就举几个简单的例子,

SharePoint 2013 单一页面赋设计权限

本文介绍SharePoint的使用中,断开单一页面权限,给用户编辑权限以及操作中遇到的问题,希望给相关需要的人一个参考. 1.首先进入页面库,找到我们的页面,进入共享,如下图: 2.在弹出的窗口中选择高级,如下图: 3.在进入权限编辑页面,首先断开当前页面的权限继承,如下图: 4.然后勾选所有继承的权限,删除,如下图: 5.而后点击Grant Permission,也就是授权,如下图: 6.按照我的理解,该用户对站点有访问权限,对单独页面具有编辑权限,就可以个性化该页面,但是添加一些WebPar