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.




Listenelement mit Applicationspage bearbeiten

Geprüfte Antwort Dieser Beitrag hat 4 Antworten

Ohne Rang
23 Beiträge
Caro erstellt 17 Feb. 2014 12:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo zusammen....

Ich habe folgendes Problem..

Ich möchte Listeneinträge in einer eigenen Applications-Page anzeigen oder bearbeiten.
Wie kann man das Link-Ziel des Bearbeitungs-Link in der Liste bearbeiten.

Ich habe mir in VisualStudio eine ListDefinition mit Felder und Inhaltstype erstellt.. Von dieser Definition wird auch eine Instanz erzeugt. Funktioniert soweit.
Jetzt versuche ich in der Schema.XML die URL im Form-Tag (   <Form Type="EditForm" URL=...... )
auf meine Aplication-Page umzustellen. Das funktioniert nicht.

Wie kann ich aus der Listenansicht über den Link Bearbeiten auf eine Applications-Page springen und bekomme die Item-ID als Parameter übergeben?

Ich habe schon einige Beispiele aus dem Netz getestet. Da werden zum Beispiel Edit-Formulare mit dem SPD erstellt. Das möchte ich nicht.

Ich arbeite mit SP2010 und VS2010.

Danke für die Mühe.

 

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 17 Feb. 2014 13:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Muß es denn unbedingt eine ApplicationPage sein? Keine Ahnung, ob man es damit hinbekommt, aber ich vermute eher nicht.

Ich mache es immer so: lege die aspx-Datei in denselben Ordner wie die schema.xml der Liste. Im Schema gibst Du bei den <Forms> das an:
<Form Type="EditForm" Url="EditForm.aspx" Path="MyCustomEditForm.aspx" WebPartZoneID="Main" />

Url gibt an, unter welchem Pfad die Datei später im Browser tatsächlich aufgerufen wird.
Path gibt den Dateinamen innerhalb der Visual Studio Solution an (kann natürlich derselbe Name sein).
WebPartZoneID gibt den Namen der Webpartzone an, in die SharePoint später das Listenformular einfügt.

Falls Du das Originalformular nicht möchtest, setze um die Webpartzone herum ein <div> mit style="display:none". Eigenen serverseitigen Code kannst Du nur indirekt verwenden (die Seite muß von WebPartPage erben, nicht von einer eigenen Klasse). Aber Du kannst in der Seite eigene Controls und Webparts nach Belieben einbinden und die dürfen dann auch serverseitigen Code enthalten.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
23 Beiträge
Caro Als Antwort am 17 Feb. 2014 14:19
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die Antwort,

diesen Lösungsweg bin ich schon gegangen. Die Form mit der der Listeneintrag bearbeitet wird ist jedoch recht komplex.
Ich habe mir mit dem SPD ein Editformular erstellt, dann den Code kopiert und in eine Applicationspage hineinkopiert. diese Page erbt, wie du schreibst, von 'WebPartPage'. Das funktioniert auch alles. Nur dieser ganze Overhead den der SPD alles in die Form zaubert ist der Graus.

Diesen Weg werde ich beschreiten, wenn nicht anderes mehr geht :-)

Ich versuche jetzt einen Feldtypen zu erstellen der mir einen Link zu meiner ApplicationsPage generiert. Dazu sind Ideen gerne willkommen.

Ich arbeite wirklich gerne mit SharePoint, aber als Framework für eigene Anwendung würde ich in Zukunft lieber etwas anderes nehmen.
Ich habe auch versucht mit dem SPD ein eigenes Formular zu erstellen. Ab einer gewissen Komplexität fliegt mir der Designer um die Ohren oder generiert Fehler die ich dann nicht mehr eingefangen bekomme. Mir diesem Werkzeug ist man nicht wirklich Produktiv. Oder ich mache irgendwas falsch.

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 17 Feb. 2014 14:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Eine andere Möglich besteht darin ein RenderingTemplate für New,Edit und Display zum Inhaltstyp bereitzustellen.

Ohne Rang
23 Beiträge
Caro Als Antwort am 18 Feb. 2014 13:43
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das war der richtige Tipp...

Danke für die Antwort.

Folgendes habe ich in die Contentype-Definition (Elements.xml) eingefügt.
....
</
FieldRefs >
<
XmlDocuments >
<
XmlDocument NamespaceURI = " http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url " >
<
FormUrls xmlns = " http://schemas.microsoft.com/sharepoint/v3/contenttype/forms/url " >
<
Display > _layouts/MyProject/MyForm.aspx?Modus=display </ Display >
<
Edit > _layouts/MyProject/MyForm.aspx?Modus=edit </ Edit >
<
New > _layouts/MyProject/MyForm.aspx?Modus=new </ New >
</
FormUrls >
</
XmlDocument >
</
XmlDocuments >
</ ContentType >
....

(Achtung: Auf den MSDN-Seiten fehlt im XMLDocument-Namespace das '../url'.)
Über ein an den Pfad angehangenen Parameter Kann die ASPX-Form in den jew. Modus geschaltet werden. Die ListID, SourceID und ItemID wird durch SharePoint automatisch an die URL angehangen.

http://ranaictiu-technicalblog.blogspot.de/2011/06/sharepoint-custom-addeditdisplay-form.html
http://sharepoint.stackexchange.com/questions/3320/custom-form-template-is-not-being-used-in-sharepoint-2010

Problem gelöst.