SharePoint 2007 Enterprise,SP2。

我遇到了一个奇怪的错误(在ULS日志中发现,Google报告在消息本身上没有命中)尝试在区域中使用预加载的WebPart上传时:

该网络部分遇到了意外的错误。错误:无法正确解析标记。标记可能应在Visual Studio属性格式中,但给定的标记为XML格式。,DesignText:u003CVPCQWP:ComponentLandingCQWPn runat="server" id="CL_CQWP" />

此WebPart来自ContentByQueryWebPart类,并设置许多Web-Context敏感属性。

这是整个webpartzone,是的 - Tagprefix在页面顶部正确注册:

<WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="TopLeft" Title="Top Left">
  <ZoneTemplate>
    <VPCQWP:ComponentLandingCQWP runat="server" id="CL_CQWP"></VPCQWP:ComponentLandingCQWP>
  </ZoneTemplate>
</WebPartPages:WebPartZone>

疯狂的部分是,如果我从区域清除此Web部分,上传页面,然后将Web部分添加到Web UI中,则可以使用,这没问题。我在这里想念什么?

有帮助吗?

解决方案

当您将Web部件直接添加到页面布局中时,该页面将由ASP.NET引擎分析为页面的一部分。这通常会给您与通过功能或onet.xml配置不同的行为 这里).

我不确定您是正常的CQWP,还是您自己滚动的,但要确保将所有有效的属性设置在控件上,就像您配置了WebPart XML一样。

要检查需要有哪些属性,请使用SharePoint Designer在页面布局中添加Web零件(OBS:只需在代码视图中复制控件,然后撤消对页面布局的更改,以免Unghost/自定义页面布局)

下面是使用SPD拖动CQWP时默认设置的示例:

<PublishingWebControls:ContentByQueryWebPart 
    runat="server" 
    NoDefaultStyle="" 
    ZoneID="" 
    FrameType="TitleBarOnly" 
    Dir="Default" 
    UseSQLDataSourcePaging="True" 
    AllowConnect="True" 
    Title="Content Query Web Part" 
    SuppressWebPartChrome="False" 
    ViewContentTypeId="" 
    MissingAssembly="Cannot import this Web Part." 
    FrameState="Normal" 
    ID="ContentByQueryWebPart1" 
    AllowRemove="True" 
    AllowHide="True" 
    AllowEdit="True" 
    ShowWithSampleData="False" 
    IsIncluded="True" 
    PartImageLarge="" 
    PartOrder="1" 
    PartImageSmall="" 
    AllowMinimize="True" 
    ConnectionID="00000000-0000-0000-0000-000000000000" 
    ExportMode="All" 
    IsIncludedFilter="" 
    GroupStyle="DefaultHeader" 
    HelpLink="" 
    SortByDirection="Desc" 
    IsVisible="True" 
    SortBy="{8c06beca-0777-48f7-91c7-6da68bc07b69}" 
    DataSourceID="" 
    AllowZoneChange="True" 
    HelpMode="Modeless" 
    ExportControlledProperties="True" 
    AdditionalFilterFields="" 
    AdditionalGroupAndSortFields="" 
    DetailLink="" 
    ItemStyle="Default" 
    Description="Use to display a dynamic view of content from your site on a web page" 
    ChromeType="TitleOnly" 
    PageSize="-1" 
    __MarkupType="vsattributemarkup" 
    __WebPartId="{b9de16fc-23b5-4d39-aaf7-3e42e8389548}" 
    WebPart="true" 
    Height="" 
    Width="">
    <SampleData>
        <dsQueryResponse>
                    <Rows>
                        <Row Title="Item 1" LinkUrl="http://Item1" Group="Group Header" __begincolumn="True" __begingroup="True" />
                        <Row Title="Item 2" LinkUrl="http://Item2" __begincolumn="False" __begingroup="False" />
                        <Row Title="Item 3" LinkUrl="http://Item3" __begincolumn="False" __begingroup="False" />
                    </Rows>
                </dsQueryResponse></SampleData>
    <DataFields>
    </DataFields>
    <Xsl>
    <xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cmswrt="http://schemas.microsoft.com/WebPart/v3/Publishing/runtime" exclude-result-prefixes="xsl cmswrt x" > <xsl:import href="/Style Library/XSL Style Sheets/Header.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/ItemStyle.xsl" /> <xsl:import href="/Style Library/XSL Style Sheets/ContentQueryMain.xsl" /> </xsl:stylesheet></Xsl>
</PublishingWebControls:ContentByQueryWebPart>

Hth Anders Rask

其他提示

我必须同意Anders的观点,如果它是您拥有子类的CQWP,则需要指定更多属性或在Web部件中设置它们(例如,在Onload/createChildControls中)。例如,您在.webpart文件中设置了哪些属性?使用Web界面添加Web部件与在Web部件区域模板中指定控件不同。当您通过WebInterface添加它时,Web部件控制描述文件(.WebPart)用于获取Web零件的默认值。

/ww

许可以下: CC-BY-SA归因
scroll top