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.




Parameterübergabe im COM für neue Elemente

Geprüfte Antwort Dieser Beitrag hat 8 Antworten

Ohne Rang
46 Beiträge
Martin089 erstellt 14 Juli 2015 14:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo ihr,

ich darf mal wieder mit Unwissen glänzen und es handelt sich hier wohl auch eher um eine allgemeine Webentwickungsfrage.

Mein Ziel  ist es aus dem Displayformular heraus ein neues Element zu erstellen, wobei einige Felder schon vorausgefüllt seien sollen, nämlich mit den Werten aus dem Displayformular. Normalerweise mache ich das über ein GET, jedoch handelt es sich um ziemlich viele Parameter und die Zeichenkette in der URL würde enorm groß werden (ich schätze auch schon gar nicht mehr zulässig).

Gibt es vielleicht eine geeignetere Methode für genau solche Fälle und am besten wäre es, wenn es mit JavaScript oder dergleichen funktioniert?

VG,
Martin089

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Juli 2015 14:50
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

GET-Parameter kannst Du in fast beliebiger Menge übergeben. Der Grenzwert liegt irgendwo jenseits von gut und böse...

Andere Methoden sind natürlich schöner. Hier die Infos, wie man es mit JavaScript machen kann: https://msdn.microsoft.com/de-de/library/office/hh185011(v=office.14).aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
Martin089 Als Antwort am 14 Juli 2015 15:15
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich empfinde es bei der Menge auch als äußerst unschön.

Das mit den CRUD Funktionen hat mich da auf ne Idee gebracht. Zwar kann ich mit denen so nichts anfangen..aber an sich reichts wenn ich ja nur die ID übergebe und dann via der Listen API, mir das passende Element auf der Empfängerseite mit ner CAML-Query hole.

Das müsste ja an sich funktionieren, oder hab ich gerade nen Fehler in dem Plan :D ?

Danke für den Ideenanstoß

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 14 Juli 2015 16:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Grundsätzlich geht das schon alles, aber ich habe keinerlei Idee, was Du da eigentlich vorhast. Kannst Du das mal beschreiben? Vielleicht findet sich ja auch eine ganz einfache (aber völlig andere) Idee zur Lösung.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
Martin089 Als Antwort am 15 Juli 2015 13:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Im Grunde genommen geht es um die Anforderung Listenelemente wie eine Vorlage ablegen zu können, sodass man einige Sachen nicht immer wieder
neu ausfüllen muss. Die Listenelemente sind Anträge die halt von einem Enduser ausgefüllt werden. Dieser Enduser soll die Chance bekommen einen bereits ausgefüllten Antrag wiederzuverwenden um daraus einen neuen zu erstellen.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Juli 2015 13:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Für sowas verwende ich immer folgendes Vorgehen: erzeuge einen Link auf die normale NewForm und gib diesem Link einige Daten als GET-Parameter mit. Sieht dann ungefähr so aus:

website/Lists/OtherList/NewForm.aspx?Value1=SomeText&value2=OtherText&value3=EvenMoreText

Auf die NewForm kommt JavaScript, das diese Werte ausliest und die entsprechenden Felder schreibt. Der Benutzer kann die Werte noch ändern oder auch einfach speichern.

Damit kann man auch an jeder beliebigen Stelle einfache Links zur Neuanlage mit unterschiedlichen Bedingungen hinterlegen. Hier die grundsätzliche Vorgehensweise: http://blogs.evocom.de/af/archive/2013/04/26/link-zum-erstellen-eines-detaildatensatzes.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
46 Beiträge
Martin089 Als Antwort am 15 Juli 2015 14:10
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Genau so mache ich es ja sonst auch, aber es wären in diesem Fall einfach viel zu viele Parameter gewesen und bei solch einer Menge empfinde ich es als äußerst unschön.

Ich habe jetzt einfach auf dem Display Formular nen Button hinterlegt, der zur NewForm führt und halt die ID des Elements, sowie eine zusätzliche Variable für die Auswertung auf der Empfängerseite, als Parameter anfügt.

NewForm.aspx?ID=xxx&Template=true, so in der Art.

Auf der Empfängerseite nutze ich dann das "getAllListItems" der REST API von der Sharepoint-Liste mit Hilfe einer CAML-Query, wobei ich die übergebene ID verwende. Dann einfach nur noch nen Mapping zwischen Variablen und Felder etc etc etc.

 

Wie gesagt, der Ideenanstoß von Gestern war schon durchaus hilfreich, danke :)

Ohne Rang
86 Beiträge
MMAY Als Antwort am 22 Juli 2015 10:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Optionen aus dem oben genannten Blog gibt es in SP 2013 anscheinend nicht mehr.

Gibt es so eine Anleitung auch für Anfänger? :-(

Habe jetzt eine ähnliche Anforderung. Ich habe eine Liste mit vielen ausgefüllten Feldern >20
Und muss aus der DisplayForm einen Button haben auf die NewForm die von den 20 Feldern 18 übernimmt.

Mit Rest API oder CAML-Query hab ich noch nie was am Hut gehabt (bin eh eigentlich kein Windows admin und war ich noch nie). 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 22 Juli 2015 10:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Also das was ich oben beschrieben und in meinem Blog verlinkt habe, funktioniert auch in 2013. Habe ich schon häufig in Projekten verwendet. Eine ausführlichere Anleitung habe ich nicht parat, aber vielleicht findest Du darin die richtigen Suchbegriffe für weitere Recherchen.

Viele Grüße
Andi
af @ evocom de
Blog