Question

SharePoint 2007 Enterprise, SP2.

Je reçois une erreur étrange (dans les journaux ULS, Google ne signale aucun succès sur le message lui-même) en essayant de télécharger une page avec un webpart pré-chargé dans une zone:

  

Une erreur inattendue a été   rencontré dans ce WebPart. Erreur:   Impossible d'analyser correctement le balisage. Il   est probable que le balisage devrait être   Visual Studio Format d'attributs, mais   le balisage donné est au format XML.,   DesignText:   

Cette dérive WebPart de la classe ContentByQueryWebPart, et établit un certain nombre de propriétés sensibles au contexte Web.

Ceci est l'ensemble du WebPartZone, et oui - le TagPrefix est enregistré correctement en haut de la page:

<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 partie folle est si j'effacer cette partie web hors de la zone, téléchargez la page, puis ajoutez la partie web retour à travers l'interface utilisateur Web, cela fonctionne, pas de problème. Qu'est-ce que je manque ici?

Était-ce utile?

La solution

Lorsque vous ajoutez la partie Web directement à la mise en page, la page s'analysé par le moteur ASP.NET dans le cadre de la page. Cela vous donnera souvent un comportement différent de l'approvisionnement grâce à une fonctionnalité ou ONET.XML (je l'ai vu moi-même essayer d'utiliser uint au lieu de int ).

Je ne suis pas sûr si son une CQWP normale vous est arrivé là, ou si vous avez roulé votre propre, mais assurez-vous que vous définissez toutes les propriétés valides sur le contrôle, comme vous le feriez si vous aviez configuré le xml webpart.

Pour vérifier les propriétés doivent être là, utiliser SharePoint Designer pour ajouter la partie Web sur la mise en page (OBS: il suffit de copier le contrôle en vue de code, et Annulez les modifications de la mise en page ainsi vous ne unghost / personnaliser votre mise en page )

Voici un exemple de paramètres par défaut lors du déplacement d'un CQWP dans un PL en utilisant 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

Autres conseils

Je suis d'accord avec Anders, si elle est un CQWP que vous avez sous-classes, vous devez soit ajouter beaucoup plus de propriétés ou les configurer dans votre partie web (en onload / CreateChildControls par exemple). Par exemple quelles sont les propriétés que vous avez défini dans le fichier .webpart? Ajout de la partie d'âme à l'aide de l'interface Web ne sont pas les mêmes que spécifiant la commande dans un modèle de zone de partie de bande. Lorsque vous ajoutez via l'interface web puis le fichier de description de contrôle de la partie Web (.webpart) est utilisé pour obtenir les valeurs par défaut de la partie Web.

/ WW

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top