Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 如何获取内容查询Web部件以显示来自多种列表类型的项目?_Sharepoint_Sharepoint 2010_Cqwp - Fatal编程技术网

Sharepoint 如何获取内容查询Web部件以显示来自多种列表类型的项目?

Sharepoint 如何获取内容查询Web部件以显示来自多种列表类型的项目?,sharepoint,sharepoint-2010,cqwp,Sharepoint,Sharepoint 2010,Cqwp,我正在尝试使用内容查询Web部件在Sharepoint 2010中创建“最新内容”页面。此页面的目标是显示过去14天内上载的所有文档。诀窍在于,这些文档可以属于在任意数量的列表定义中定义的任意数量的列表。这些是基于自定义内容类型的自定义列表定义。我们的每个自定义内容类型都继承自一个基本内容类型。它们也都属于同一内容类型组。我已经确定不可能使用SP UI设置CQWP来返回来自多个列表类型的项目,因为其中一个必需的查询字段是list type。所以-我试图用CAML来定义这个CQWP,这就是我遇到的

我正在尝试使用内容查询Web部件在Sharepoint 2010中创建“最新内容”页面。此页面的目标是显示过去14天内上载的所有文档。诀窍在于,这些文档可以属于在任意数量的列表定义中定义的任意数量的列表。这些是基于自定义内容类型的自定义列表定义。我们的每个自定义内容类型都继承自一个基本内容类型。它们也都属于同一内容类型组。我已经确定不可能使用SP UI设置CQWP来返回来自多个列表类型的项目,因为其中一个必需的查询字段是list type。所以-我试图用CAML来定义这个CQWP,这就是我遇到的问题。我的最终目标是在站点定义(onet.xml文件)中定义CAML,但我也没有从SP UI上传.webpart文件。我已经找到了几篇文章,解释了应该如何做到这一点,但还没有找到建议的解决方案。这告诉我应该可以使用listsoferride元素。这篇文章告诉我怎么做:

<![CDATA[
          <Lists BaseType="0">
          </Lists> ]]>

]]>
因为我在寻找文档库,所以我会使用基本类型1而不是0

我无法确定onet.xml文件中的语法,因此我想我应该先尝试将其作为.webpart文件上传

这就是ListsOverride元素的外观:

<property name="ListsOverride" type="string">
    <![CDATA[<Lists BaseType="1"></Lists>]]>
</property>

]]>
然而,当我在CAML中上传一个带有这个的.webpart文件并将该Web部件添加到一个页面时,我会在Sharepoint中破坏该页面。这就是我得到的:

“/”应用程序中出现服务器错误。 试图使用已不存在的对象

对该错误的研究向我指出了处理对象(如SPContext.Current.Web)的代码,但我这里甚至没有任何代码。看起来CQWP几乎有一个bug。或者-我没有正确格式化CAML,或者我需要在CAML中的不同元素中更改某些内容

我正在运行带有所有最新补丁的Sharepoint 2010 SP1。(我相信)

我尝试过其他几种格式,但运气不好

我试着去掉嵌入的CDATA标记,如下所示:

<property name="ListsOverride" type="string">
    <Lists BaseType="1"></Lists>
</property>
    <property name="ListsOverride" type="string">
<![CDATA[<Lists><List Id="{5a2f79bb-cc82-4171-88ac-65f20e7b5fa8}" /></Lists>]]>

但是Sharepoint不允许我上传.webpart文件。(无效的.webpart文件)

嵌入CDATA标记的格式似乎是我上传文件的唯一方式

我尝试(只是为了缩小我的问题范围)指定如下特定列表:

<property name="ListsOverride" type="string">
    <Lists BaseType="1"></Lists>
</property>
    <property name="ListsOverride" type="string">
<![CDATA[<Lists><List Id="{5a2f79bb-cc82-4171-88ac-65f20e7b5fa8}" /></Lists>]]>

]]>

这不会破坏页面,但Web部件在页面上给出的错误不太有用(无法显示此Web部件)

我不能100%确定我在那次尝试中使用了合适的GUID。我在VisualStudio的服务器资源管理器中(在“列表和库>>文档库>>我的列表类型”下)找到了它。(我从Id属性获得了GUID)

我应该提到的是,我对Sharepoint开发相当陌生。我希望Sharepoint的核心功能会比这简单得多


有人能指出我做错了什么吗?也许整个事情我做得不对?我感谢任何人能给我的帮助!

我发现问题出在SharePoint填充的所有“额外”字段上

在我的例子中,我首先在页面上配置内容查询web部件,然后将其导出以获取xml。然后,我将xml放在我的网站定义的onet.xml文件中。最初这很好,但在我尝试配置基本类型时,它的行为并没有达到预期

如果我删除了所有的附加字段,只使用了我实际需要配置的几个字段,那么它就开始工作了。事实上,我甚至不需要使用ListsOverride元素,因为有一个BaseType属性工作得很好。看来我正在使用的其他属性之一确实是我的is的原因起诉

以下是我在onet.xml中使用的Web部件定义:

<AllUsersWebPart WebPartZoneID="WebPartZone" WebPartOrder="1">
      <![CDATA[                
    <webParts>
      <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
        <metaData>
          <type name="Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
          <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
        </metaData>
        <data>
          <properties>
            <property name="Title" type="string">Recently Updated Documents</property>
          <property name="ChromeType" type="chrometype">TitleOnly</property>
          <property name="ChromeState" type="chromestate">Normal</property>
              <property name="WebUrl" type="string">~site</property>
          <property name="BaseType" type="string">1</property>
              <property name="ContentTypeBeginsWithId" type="string">0x0101008B0856395DCD40F99C9B42B6BF92BDDB</property>
          <property name="FilterField1" type="string">{28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f}</property>
          <property name="FilterType1" type="string">DateTime</property>
          <property name="FilterOperator1" type="Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart+FilterFieldQueryOperator, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">Geq</property>
          <property name="FilterDisplayValue1" type="string">-14</property>
          <property name="FilterValue1" type="string">-14</property>
          <property name="SortBy" type="string">{8c06beca-0777-48f7-91c7-6da68bc07b69}</property>
          <property name="SortByFieldType" type="string">DateTime</property>
          <property name="SortByDirection" type="Microsoft.SharePoint.Publishing.WebControls.ContentByQueryWebPart+SortDirection, Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c">Desc</property>
          <property name="ItemXslLink" type="string">~sitecollection/Style Library/DealerPortal/ItemStyle.xsl</property>
          <property name="CommonViewFields" type="string">Name,Text;Created,DateTime;Modified,DateTime;Body,Note;DocumentIconImageUrl;OnClickForWebRendering</property>
        </properties>
      </data>
      </webPart>
      </webParts>             
      ]]>      

    </AllUsersWebPart>

无法导入此Web部件。
最近更新的文件
TitleOnly
正常的
~site
1.
0x0101008B0856395DCD40F99C9B42B6BF92BDDB
{28cf69c5-fa48-462a-b5cd-27b6f9d2bd5f}
日期时间
Geq
-14
-14
{8c06beca-0777-48f7-91c7-6da68bc07b69}
日期时间
描述
~sitecolection/Style Library/DealerPortal/ItemStyle.xsl
名称,文本;已创建,日期时间;已修改,日期时间;正文,注释;DocumentIconImageUrl;OnClickForWebRendering
]]>      

非常好。欢迎来到stackoverflow!