Frage

Ich habe eine benutzerdefinierte Listendefinition mit einem Inhaltstyp erstellt.

In der schema.xml möchte ich zwei Ansichten definieren:

  • Alle Elemente (das Standardelement, generiert von Visual Studio)
  • Meine Artikel (dieselbe Ansicht mit einem Filter basierend auf der Benutzer-ID)

Wenn ich meine Liste bereitstelle, werden die beiden Ansichten tatsächlich erstellt, der Filter, den ich für die zweite Ansicht definiert habe, ist jedoch verschwunden.

Hier ist der Filter, den ich verwende:

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

Was fehlt ?Wenn ich SPD verwende, um den Filter nach dem Deployment zu erstellen, wird genau diese Abfrage generiert.

Ich weiß nicht, ob es helfen kann, aber hier ist die gesamte Ansichtsdefinition:

  <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>

[Bearbeiten]:Ich bin etwas verwirrt mit dem <View BaseType="1"> Attribut.Da ich die Ansicht „AllItems“ beibehalten möchte, habe ich jetzt zwei Ansichten mit demselben Basistyp.Was genau ist der Zweck dieses Attributs?Habe ich recht, wenn ich denke, dass ich so viele Ansichten wie erforderlich mit demselben Basistyp haben kann?

War es hilfreich?

Lösung

Die BaseViewID muss für jede Ansicht eindeutig sein.1 ist die ID der AllItems-Ansicht, die keine Filter hat, deshalb können Sie Ihre Filter nicht sehen.

Siehe diesen Beitrag: http://social.msdn.microsoft.com/forums/en-us/sharepointdevelopment/forums/52e45ddd-73a8-400f-890c-323A0AAAAECKB

Andere Tipps

BaseViewID ist ein verwirrender Name.Es hätte einfach benannt werden sollen ViewID Genau das ist es.

Ihre BaseViewID muss für jede Ansicht in einer Liste eindeutig sein.Versuchen Sie, Ihrer „Meine Artikel“-Ansicht die BaseViewID als 3 zu geben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top