Definieren benutzerdefinierter Ansichten in der Datei schema.xml einer Liste
-
09-12-2019 - |
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?
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.