Frage

Ich bin eine sehr einfache hinzufügen XsltListViewWebPart zu einer Anwendung Seite.Wie so:

XsltListViewWebPart lvWebPart = new XsltListViewWebPart { ChromeType = PartChromeType.None, ListUrl = "/somesite/list" };
Page.Controls.Add(lvWebPart);

Alles funktioniert gut (ich kann Dateien herunterladen, Ordner anlegen, verschiedene Ansichten wählen, etc.) - aber die links der Ordner haben, die falsche href:Sie weisen immer wieder auf die Wurzel web!

Siehe diese Beispiele:enter image description here

Wie Sie sehen können, wird das Dokument korrekt links zu ../sites/sr/doclib/mydocument.docx aber bei der Suche auf die Ordner, die Sie vergessen, den Kontext, in dem Sie sich befinden (Sie sind in http://../sites/sr/_layouts/../../..Detail.aspx?RootFolder=..., der wichtige Teil ist " /sites/sr/).Sie versuchen, gehen Sie zu der _layouts-Ordner in das root-Websitesammlung Kontext -wie oben gezeigt: http://../_layouts/../../..Detail.aspx?RootFolder=...

Oder noch einmal zusammengefasst:

  • Die Seite Anwendung Ort:
    • http://sp/sites/sr/_layouts/my/application/Detail.aspx
  • Die Liste/doclib ich bin den Zugriff auf
    • http://sp/sites/sr/mylist
  • Die URL für den Ordner in XsltListViewWebPart
    • http://sp/_layouts/my/application/Detail.aspx?RootFolder=...
  • Die URL für den Ordner, wie Sie sein sollten
    • http://sp/sites/sr/_layouts/my/application/Detail.aspx?RootFolder=...

Hier kommt der Clou:Bei Verwendung eines ListViewWebPart, alles funktioniert wie es sollte!Statt des XsltListViewWebPart oben habe ich einfach eine ListViewWebpart - und Ordnern arbeiten, die den Kontext berücksichtigt, in dem die Ordner haben die URL wie ich will (http://../sites/sr/_layouts/../../..Detail.aspx?RootFolder=...

Ich habe versucht, die Einstellung der WebId Eigenschaft auf das XsltListViewWebpart in der Hoffnung, es würde den Rahmen, aber kein Glück.Ich bin jetzt denken, dass entweder ich konfigurieren es falsch, oder die neue SharePoint 2010-XsltListViewWebPart einen bug hat - wie der gleiche code funktioniert für eine ListViewWebPart auf der gleichen Seite.

Ich hoffe, jemand kann überprüfen Sie dieses Problem.

War es hilfreich?

Lösung

In kurzen, einfach nicht mit XsltListWebPart auf Antrag Seiten.

Und hier sind einige Erklärungen zusammengefasst:

XsltListViewWebPart und anderen OOTB SharePoint-webparts (vor allem komplexe), anscheinend gerade nicht arbeiten soll anwendungsseiten Umgebung.In anderen Worten, Sie wurden nicht getestet und damit Ihre Funktionsfähigkeit nicht garantiert werden.

Dies kann indirekt bestätigt durch das Lesen mindestens die folgenden MSDN-Artikel:

..Eine Seite kann auch host-Funktionen wie dynamische Web-Teile, und Webpart-Zonen.Anwendungsseiten kann nicht tun, diese Dinge.

Auch es wird angegeben in MS natürlich 10232.

Über XsltListViewWebPart (XLV), insbesondere, hörte ich mehrere Probleme, während Sie es von Anwendung Seite, und einiges erlebt Sie selbst.

Zum Beispiel, wenn Sie anpassen XLV mit XslLink Eigenschaft, XLV werden nicht den cache der xsl-Datei, und als Folge der EZB, sowie die entsprechenden Schaltflächen auf dem Menüband wird nicht funktionieren.In den Protokollen, erhalten Sie die folgende Ausnahme, Meldung:

Versucht, ein Objekt zu verwenden, die aufgehört hat zu existieren.

Sie können auch überprüfen Sie die folgenden Frage ein weiteres Beispiel für die Probleme mit OOTB-webpart auf der Seite Anwendung (ListViewWebPart dieser Zeit):

Andere Tipps

Erstens, ich denke, Andrej trifft den Nagel auf den Kopf.Darüber hinaus könnten Sie versuchen, zu verwenden die ListViewByQuery control über einen Antrag-Seite, wenn Sie sind auf der Suche nach einem einfachen tabellarischen layout-Daten (d.h.eine Liste).Microsoft tut dies in der OOB-workflow status Seite (d.h._layouts/wrkstat.aspx) für die Anzeige von Aufgaben.

Ich habe nicht versucht, es mit ECB, und solchen, aber habe es für Nur-Lese-Listen von Daten.Da es klingt wie Sie sind mit es für eine Dokument-Bibliothek mit Ordnern, ich bin nicht zuversichtlich, es zu arbeiten direkt, ohne viel code zu bekommen, Ordner, Sortieren und paging funktioniert.Könnte es einen Versuch Wert, obwohl ich würde nicht verbringen viel Zeit mit ihm als die Seite ist, wahrscheinlich einen besseren Weg zu gehen, mit weniger benutzerdefinierten code.

Wenn Sie gehen mit ListViewByQuery, werden sicher zu überprüfen Sie diese links für paging, etc.:

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