SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Eigene Display Form für eigene Liste - DataFormWebPart wird dennoch geladen

Unbeantwortet Dieser Beitrag hat 7 Antworten

Ohne Rang
367 Beiträge
Christian Merkel erstellt 20 Juni 2012 14:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

ich bin gerade dabei eine eigene DispForm.aspx für meine eigene Liste zu schreiben. Funktioniert soweit schon super. Die seite wird angezeigt und meine Änderungen und eigenen WebParts werden angezeigt.
Jedoch wird auch immer noch das Standard-DFWP mit geladen durch SharePoint.

Wenn ich jetzt die WebPart-Zone entferne, kommt am Anfang die Meldung:

"One or more Web Parts on this page references a zone that doesn't exist. It has been moved to the closed Web Part Gallery"

Also versucht er es immer noch zu laden, findet nur die Zone nicht (verständlich).

Wie aber verhindere ich das Laden dieses für diesen Zweck überflüssigen WebParts?

Ich zeige mein eigenes, stark verändertes DFWP an...

Ich habe bereits die CreateChildCOntrols Methode überschrieben und da meine WebParts platziert und lade nicht die Standard-Controls:

//base.CreateChildControls();

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 21 Juni 2012 12:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Lasse das Standard-DFWP einfach in der Seite (sie funktioniert sonst eh nicht richtig) und setze seine IsHidden-Eigenschaft auf true.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Christian Merkel Als Antwort am 21 Juni 2012 12:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Gute Idee,

 

aber wie komm ich an das nachträglich hinzugefügte WebPart ran um seine Property zu setzen?

komm ich aus der OnInit oder CreateChildControls Methode irgendwie an das DFWP ran?

Momentan hab ich es so gelöst, das die "<WebPartPages:WebPartZone runat="server" Visible="false"" gesetzt ist. Das ist aber nicht die beste lösung, da 1. so event. Fehler unterdrückt werden und 2. der Ribbon nicht aktiviert wird (um Edit Item zu drücken)...

:)

SharePoint Enthusiast

Ich helfe gern, wenn es mein Zeit zu lässt :)
Gern auch per direkter Anfrage auf XING

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 21 Juni 2012 13:02
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ach Du hast die gesammte Seite in Deinem Projekt? Ich dachte Du berabeitest eine existierende Seite in SPD.

Dann setze doch einfach ein Standardwebpart darauf. Den Code dazu holst Du Dir einfach aus einer Standard-DispForm - natürlich mit ein paar Anpassungen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Christian Merkel Als Antwort am 4 Juli 2012 15:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

ich will doch aber kein Standardwebpart draufsetzen sondern mein eigenes :(

 

Leider ist das mit "Visibil=false" bei der WebPart-Zone auch doof, da so der Ribbon deaktiviert wird und man bei "DispForm.aspx" nicht mehr auf "Element bearbeiten" klicken kann.

Also hab ich um die webpart zone ein div gebaut und diesen auf display=none gesetzt. so geht der Ribbon, das webPart ist weg und meins wird nur nochangezeigt.

Aber der Weisheit letzer schluss ist das auch nicht.

Am liebsten wäre mir:

Das standard-ListViewWebPart durch mein WebPart, welches vom DataViewWebPart erbt zu ersetzen! So das auch der Ribbon geht usw. Hab schon versucht den ItemContext auf SPContext.Current zu setzten bei meinem WebPart, ohne auswirkung auf den Ribbon.

Hab shcon versucht den current Ribbon etnsprechend mit activeteTab zu modifizieren, funktioniert nicht :(

Gibts hier irgendwie eine Lösung? Ich bin doch nicht der Erste der eine eigene DisplayForm aufbaut oder?

SharePoint Enthusiast

Ich helfe gern, wenn es mein Zeit zu lässt :)
Gern auch per direkter Anfrage auf XING

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 8 Juli 2012 13:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Warum denn so umständlich? Lies meine letzten Posts nochmal durch.

Benutze ein Standardwebpart und setze dessen IsVisible auf false. Und benutze Dein eignes Webpart. Fertig. Du brauchst nicht an den Webpartzonen zu schrauben und Du brauchst keine Verrenkungen mit eigenen DIVs.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
367 Beiträge
Christian Merkel Als Antwort am 17 Juli 2012 13:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Und wie stell ich das mit dem setzen der Eigenschaft an?

 

Ich hab folgendes versucht:

in der schema hab ich versucht mein eigenes WebPart als default zu hinterlegen:

        <Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="FEATURES\$SharePoint.Project.FileNameWithoutExtension$_$SharePoint.Feature.FileNameWithoutExtension$\MyList\DispMyListItem.aspx" UseDefaultListFormWebPart="FALSE" WebPartZoneID="Main">
            <WebParts>
                <AllUsersWebPart WebPartZoneID="Main" WebPartOrder="0">
                    <![CDATA[
                    <WebPart xmlns="http://schemas.microsoft.com/WebPart/v3">
                      <FrameType>None</FrameType>
                      <Assembly>MyProject, Version=1.0.0.1, Culture=neutral, PublicKeyToken=d8e847c0911d99a2</Assembly>
                      <Namespace>MyProject.CustomWebPart</Namespace>
                      <TypeName>*</TypeName>
                      <Title>Display my Item</Title>
                    </WebPart>]]>
                </AllUsersWebPart>
            </WebParts>
        </Form>

 

Es wird mir dann aber immer ein Fehler gewurfen, das er das WebPart nicht als Safe control hat oder nicht finden kann. In der WebConfig steht es aber richtig drin (genau die assembly, der namespace und der type).

Wenn ich ein Standard-Webpart da darufsetzen will, msus ich es doch am ende auch so machen oder? nur halt dessen assembly angeben und dessen type, oder?

:/

das is aber alles immer doppelt gemoppelt dann.

Danke dir nochmals :)

SharePoint Enthusiast

Ich helfe gern, wenn es mein Zeit zu lässt :)
Gern auch per direkter Anfrage auf XING

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 17 Juli 2012 17:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann prüfe den SafeControl-Eintrag nochmal. Und beachte auch Groß-/Kleinschreibung. Ist die Assembly erreichbar? Im GAC? Und ist die Webpart-Klasse auch public?

Viele Grüße
Andi
af @ evocom de
Blog