Question

J'ai créé une définition de liste personnalisée, avec un type de contenu.

Dans le schema.xml, j'aimerais définir deux vues :

  • Tous les éléments (celui par défaut, généré par Visual Studio)
  • Mes éléments (la même vue avec un filtre basé sur l'identifiant de l'utilisateur)

Lorsque je déploie ma liste, les deux vues sont effectivement créées, mais le filtre que je définis pour la seconde a disparu.

Voici le filtre que j'utilise :

    <Query>
      <OrderBy>
        <FieldRef Name="Modified"
                  Ascending="FALSE">
        </FieldRef>
      </OrderBy>
      <Where>
        <Eq>
          <FieldRef Name="AssignedTo" />
          <Value Type="Integer">
            <UserID />
          </Value>
        </Eq>
      </Where>
    </Query>

Que manque-t-il ?Si j'utilise SPD pour créer le filtre après le déploiement, il génère exactement cette requête.

Je ne sais pas si cela peut aider, mais voici la définition complète de la vue :

  <View BaseViewID="1"
        Type="HTML"
        WebPartZoneID="Main"
        DisplayName="My messages"
        DefaultView="TRUE"
        MobileView="True"
        MobileDefaultView="True"
        SetupPath="pages\viewpage.aspx"
        ImageUrl="/_layouts/images/announce.png"
        Url="MyMessages.aspx">
    <Toolbar Type="Standard" />
    <XslLink Default="TRUE">mycustomxsl.xsl</XslLink>
    <RowLimit Paged="TRUE">30</RowLimit>
    <ParameterBindings>
      <ParameterBinding Name="NoAnnouncements"
                        Location="Resource(wss,noXinviewofY_LIST)" />
      <ParameterBinding Name="NoAnnouncementsHowTo"
                        Location="Resource(wss,noXinviewofY_DEFAULT)" />
    </ParameterBindings>
    <ViewFields>
      <FieldRef Name="Attachments">
      </FieldRef>
      <FieldRef Name="LinkTitle">
      </FieldRef>
      <FieldRef Name="Modified">
      </FieldRef>
    </ViewFields>
    <Query>
      <OrderBy>
        <FieldRef Name="Modified"
                  Ascending="FALSE">
        </FieldRef>
      </OrderBy>
      <Where>
        <Eq>
          <FieldRef Name="AssignedTo" />
          <Value Type="Integer">
            <UserID />
          </Value>
        </Eq>
      </Where>
    </Query>
  </View>

[Modifier]:Je suis un peu confus avec le <View BaseType="1"> attribut.Comme je souhaite conserver la vue AllItems, j'ai maintenant deux vues avec le même type de base.Quel est exactement le but de cet attribut ?Ai-je raison de penser que je peux avoir autant de vues que nécessaire avec le même type de base ?

Était-ce utile?

La solution

Le BaseViewID doit être unique pour chaque vue.1 est l'identifiant de la vue Allitems, qui n'a pas de filtres, c'est pourquoi vous ne pouvez pas voir vos filtres.

Voir ce message: http://social.msdn.microsoft.com/forums/en-us/sharepointDevelopment/thread/52e45ddd-73A8-400F-890C-323A0AAAECCB

Autres conseils

BaseViewID est un nom déroutant.Il aurait dû être nommé juste ViewID c'est exactement ce que c'est.

Votre BaseViewID doit être unique pour chaque vue d’une liste.Essayez de donner le BaseViewID à 3 à votre vue "Mes éléments".

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