Domanda

SharePoint 2007 Enterprise, SP2.

Sto ottenendo un errore strano (che si trova nei registri ULS, Google riporta nessun visite per il messaggio stesso) quando si tenta di caricare una pagina con un webpart precaricato in una zona:

Un errore imprevisto è stato incontrato in questa web part. Errore: Impossibile analizzare markup correttamente. esso è probabile che il markup deve essere in Di Visual Studio formato dell'attributo, ma la data di marcatura è in formato XML., DesignText:

Questa WebPart deriva dalla classe ContentByQueryWebPart, ed impone una serie di proprietà sensibili al web al contesto.

Questa è tutta la WebPartZone, e sì - il TagPrefix è registrato correttamente nella parte superiore della pagina:

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

La parte folle è se posso eliminare questa parte web fuori dalla zona, caricare la pagina, e quindi aggiungere la parte posteriore nel web attraverso il web UI, funziona, nessun problema. Che cosa mi manca qui?

È stato utile?

Soluzione

Quando si aggiunge la web part direttamente al layout di pagina, la pagina rimane analizzato dal motore di ASP.NET come parte della pagina. Questo spesso si darà un comportamento diverso rispetto provisioning attraverso una funzione o ONET.XML (ho visto io stesso cercando di utilizzare al posto di uint int qui ).

Non sono sicuro se un CQWP normale hai lì, o se si rotolò da soli, ma assicuratevi di impostare tutte le proprietà valide sul controllo, come si farebbe se si fosse configurato il xml webpart.

Per controllare quali proprietà devono essere lì, utilizzare SharePoint Designer per aggiungere la parte web sul Layout di pagina (OBS: basta copiare il controllo in visualizzazione codice e annullare le modifiche al layout di pagina in modo da non unghost / personalizzare il layout di pagina )

Di seguito è riportato un esempio di impostazioni predefinite quando si trascina un CQWP in un PL utilizzando SPD:

<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

Altri suggerimenti

Sono d'accordo con Anders, se si tratta di un CQWP che avete sottoclassi, è necessario sia per specificare molte più proprietà o li misi in parte web (in onload / CreateChildControls per esempio). Per esempio quali proprietà hai impostato all'interno del file .webpart? Aggiungendo la parte web utilizzando l'interfaccia web non è la stessa specificando il controllo in un modello web zone parte. Quando si aggiunge tramite l'interfaccia web, allora la descrizione del file di controllo web part (.webpart) viene utilizzato per ottenere i valori di default della parte web.

/ WW

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top