プリロードされたWebパーツゾーンのWebパーツエラー
-
16-10-2019 - |
質問
SharePoint 2007 Enterprise、SP2。
ゾーンにプリロードされたWebパートを使用してページをアップロードしようとすると、奇妙なエラーがあります(ULSログで見つかりました。
このWebパーツで予期しないエラーが発生しました。エラー:マークアップを正しく解析できません。マークアップはVisual Studio属性形式である必要がありますが、指定されたマークアップはXML形式です。u003CVPCQWP:ComponentLandingCQWPn runat="server" id="CL_CQWP" />
このWebPartは、ContentByQueryWebPartクラスから派生し、多くのWebコンテキストに敏感なプロパティを設定します。
これは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 UIを介してWebパーツを再び追加した場合です。ここに何が欠けていますか?
解決
Webパーツをページレイアウトに直接追加すると、ページはページの一部としてASP.NETエンジンによって解析されます。これにより、多くの場合、機能またはonet.xmlを介したプロビジョニングとは異なる動作が得られます(intの代わりにuintを使用しようとしている自分でこれを見ました ここ).
あなたがそこに着いた通常のCQWPか、あなたがあなた自身のロールしたかどうかはわかりませんが、WebPart XMLを構成した場合と同様に、すべての有効なプロパティをコントロールに設定してください。
プロパティを確認するには、SharePoint Designerを使用してページレイアウトにWebパーツを追加します(OBS:コードビューでコントロールをコピーし、ページレイアウトの変更を元に戻すため、ページレイアウトを解除/カスタマイズしないでください)
以下は、CQWPをSPDを使用してPLにドラッグする場合のデフォルト設定の例です。
<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
他のヒント
アンダースに同意する必要があります。サブクラスがあるのがCQWPである場合、より多くのプロパティを指定するか、Webパーツに設定する必要があります(たとえばOnload/CreateChildControls)。たとえば、.webpartファイル内でどのプロパティを設定しましたか? Webインターフェイスを使用してWebパーツを追加することは、Webパーツゾーンテンプレートのコントロールを指定することと同じではありません。 Webインターフェイスを介して追加すると、Webパーツコントロールの説明ファイル(.webpart)を使用して、Webパーツのデフォルト値を取得します。
/ww