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.




Custom Action um Element aus Liste in eine andere Liste zu kopieren (via ECB Erweiterung)

Geprüfte Antwort Dieser Beitrag hat 14 Antworten

Ohne Rang
19 Beiträge
Vincent erstellt 21 Juni 2012 20:31
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hi,

 

ich habe per Custom Code den Edir Control Block einer Liste erweitert. Hat alles gut funktioniert. Ich lasse beim draufklicken auf den ECB Befehl C# Code laufen, der das Element in eine andere Liste kopiert, bzw in einer anderen Liste einen Eintrag mit gleichem Title.

Meine Frage...

Hat jemand eine Idee wie ich, nachdem ich auf "Eintrag in anderer Liste" im ECB geklickt habe, sich das newForm.aspx der anderen Liste, wo der Eintrag entstehen soll, aufgeht mit bereits gefülltem Titel?

Ich habe es hinbekommen das direkt die NewForm aufgeht. Aber der Titel steht nicht drin. Der soll ja übernommen werden.

 

Vielen Dank für Hilfe.

 

Gruß

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 22 Juni 2012 08:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Man gibt dazu beim Aufruf der NewForm den Titel in der URL mit:
NewForm.aspx?Title=MeinTitel

In die NewForm kommt dann noch etwas JavaScript, das diesen Wert aus der URL ausliest und in das Titelfeld schreibt. Das kann man dann auch gleich readonly setzen.

Beispiel: http://geekswithblogs.net/SoYouKnow/archive/2009/07/06/setting-sharepoint-form-fields-using-javascript.aspx

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
19 Beiträge
Vincent Als Antwort am 22 Juni 2012 10:06
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Vielen Dank.

Ich habe genau nach so etwas gesucht. Allerdings jabe ich es mit CSharp gelöst und nicht mit javascript, da ich eh über C#-Code das newForm Formular aufrufe.

Gruß

Ohne Rang
19 Beiträge
Vincent Als Antwort am 25 Juni 2012 09:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Morgen zusammen,

 

wie das immer so ist, führt das eine zum anderen. Es funktioniert jetzt das ich die Titelspalte der newForm. aspx mit ?Title=MeinTitel befülle. Aber es geht nicht bei weiteren Spalten. Ich mache zum Beispiel ?Title=MeinTitel&ElementID=14.

Nach dem Kompilieren wird mir der Inhalt der Title-Spalte befüllt, aber die Spalte ElementID ist leer. Allerdings steht oben in dem Fenster des Links http://....

?Title=MeinTitel&ElementID=14 drin. Hat es vielleicht damit zu tun, das keine Spalten dafür genutzt werden können die vom Benutzer erstellt wurden sind?

 

Gruß

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Juni 2012 10:09
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist völlig unabhängig davon, wie die Spalte erstellt wurde. Aber Dein Script muß natürlich den Spaltentyp beachten. Ein Textfeld kann einfach besetzt werden, aber z.B. ein Nachschlagefeld ist da komplizierter.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
19 Beiträge
Vincent Als Antwort am 25 Juni 2012 10:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Treffer!

Es geht um eine Nachschlagespalte =)

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Juni 2012 10:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist in dem Beitrag, den ich oben verlinkt habe, aber auch beschrieben.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
19 Beiträge
Vincent Als Antwort am 25 Juni 2012 16:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja, habe ich mir angeschaut. Aber ich bekomme den QueryString einfach nicht zusammengebaut. Es handelt sich bei mir "nur" um einen einfachen Lookup. Die Übergabe des Titles von der einen in die andere Liste klappt ohne Probleme mit ?Title=...

Bei dem zweiten Feld was ich befüllen will geht es lediglich darum, dass ich eine lookup-Spalte in Liste 2 befüllen möchte, die auf die ID-Spalte von Liste 1 verweist. Irgendwie will das einfach nicht klappen.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 25 Juni 2012 16:45
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann beschreibe genauer, was Du wie machst. Du bekommst die richtige ID nicht in die aufzurufende URL, richtig?

Du machst das per C#? Aus welchem Kontext? Du kannst die ID des aktuellen Elemenst so bekommen:
SPContext.Current.ListItem.ID

Oder eines anderen Elements, das Du hast: SPListItem.ID

Wenn die gesuchte ID bereits im QueryString vorhanden ist, je nach Kontext:
Request.QueryString["ID"] oder this.Page.Request.QueryString["ID"]

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
19 Beiträge
Vincent Als Antwort am 25 Juni 2012 16:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Genau. Die ID habe ich in einer Variable gespeichert und bekomme sie nicht in der URL übergeben.

Per CustomAction in einem Edit Control Block starte ich C# Code. Es wird dann aus der Element.xml durch den Befehl javascript:__doPostBack(...) eine Klasse aufgerufen, in der mein C# Code läuft. 

Dort lese ich die ItemID aus, und auf diesem Weg bekomme ich das Element (getItemById()), von dem das Event gefeuert wurde (aus dem ECB).

Darauf rufe ich mit Page.Response.Redirect() die Sharepointseite auf, auf der sich die 2. Liste befindet. Ich rufe direkt die /newForm.aspx auf und übergebe in den Title, und will als Lookup die ID des Elements der ersten Liste mitgeben (was ja in der ItemID steht).

Andernfalls, falls es nicht klappt, möchte ich die ItemID nicht als Lookup übergeben, sondern nur als Wert (siehe URL unten).

 

URL aufruft sieht folgendermaßen aus:  http://......../newForm.aspx?Title=" + str_title + "&TicketID=" + int_ticketID"

 

Ohne Rang
19 Beiträge
Vincent Als Antwort am 26 Juni 2012 07:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mir ist beim Debuggen aufgefallen, dass ich in der Variablen die ich für die ItemID angelegt habe, immer den richtigen Wert drin habe. Allerdings habe ich den Eindruck, dass ich einer newForm.aspx nicht mehr als einen Wert uiweosen kann. Mit dem Title klappt es wunderbar, aber mehr funktioniert nicht. Es wurde auch mit anderen Parametern getestet. Sowohl Zahlenwerte, wie auch Strings.

Gruß Vincent

 

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 26 Juni 2012 11:38
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Warum sollte das mit mehreren Parametern nicht funktionieren? Habe ich schon oft angewendet...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
19 Beiträge
Vincent Als Antwort am 26 Juni 2012 13:57
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich wünschte mir es würde gehen. Habe es bereits bei mehreren Formularen getestet mit unterschiedlichen Spaltentypen.

 

Ohne Rang
1 Beiträge
SPFellow11 Als Antwort am 4 Sept. 2019 11:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo Andy,

wir haben Probleme ein Listen-Element in eine andere Liste zu kopieren.

Hast du einen Vorschlag.

 

VG

Berti

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 4 Sept. 2019 14:11
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wo genau klemmt's denn? 

Viele Grüße
Andi
af @ evocom de
Blog