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 an NewForm.aspx übergeben

Geprüfte Antwort Dieser Beitrag hat 3 Antworten

Ohne Rang
120 Beiträge
turrican 72 erstellt 22 Apr. 2013 13:46
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Guten Tag,

der Titel ist sicher nicht ganz eindeutig (mit viel kein treffenderer ein) - aber mein Problem auch nicht einfach zu erklären.

Ich würde gerne in einer Master - Child (1:n) Umgebung (zwei Listen) aus der Detailansicht eines Master-Elements ein neues Child-Element erstellen lassen (z. B. über das Fomularmenüband).

Das wäre ja an sich nicht so kompliziert. Aber ich möchte gerne Informationen aus dem Master Element an das neu zu erstellende Child Element übergeben und dort einige der Eingabefelder "vorausfüllen".

Ich habe versucht, das über einen Hyperlink im Formularbandmenü zu realisieren (in der folgenden Form: [...]/NewForm.aspx?MasterID={ItemId})

Aber ich weiß nicht, wie ich den übergebenen Wert aus MasterID im Child Fenster in ein entsprechendes Eingabefeld zu übergeben (z. B. eine Dropdownlist) - die dann bereits das entsprechende Master Element ausgewählt hat. Der Versuch mit JavaSkript das Feld zu füllen führte nicht zum Erfolg (bin aber auch keine Java Experte).

Geht so etwas überhaupt mit "Bordmitteln"?

Für Ideen & Ratschläge wäre ich sehr dankbar.

Beste Grüße

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 22 Apr. 2013 14:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Sowas geht sogar sehr gut mit JavaScript. Wo genau hast Du denn ein Problem?

Schaue Dir auch mal das hier an. Es enthält viele nützliche Methoden um auf die Formularfelder zuzugreifen: http://spservices.codeplex.com/

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
120 Beiträge
turrican 72 Als Antwort am 22 Apr. 2013 14:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ich habe zwei Tabellen:

1. Master mit den Feldern (ID, Titel ... [und weiteren Feldern])

2. Detail mit den Feldern (ID, Titel, Master (Lookup-Field), Master:ID ... [und weiteren Feldern])

Der Bezug von Detail zu Master läuft über das Loopup Feld. In Feld Master wird der Titel vom Master-Element gespreichert, in Master:ID die ID vom Master-Element.

Ideal wäre es, wenn ich aus einem Master-Element heraus auf "Neu Detail..." klicken könnte und dann eine NewForm für Detail aufgerufen wird, wo das Lookup Field schon den Bezug zu dem aufrufenden Master-Element ausgewählt hätte.

Es wäre auch möglich, eine Kopie der NewForm zu erstellen und die beiden Felder "Master" und "Master:ID" nicht als Lookup zu realiseren, sonder nur als Platzhalter, welcher die Werte dann beim erstellen des Detail Elementes übergeben.

Ich schaue aber auch parallel bei Codeplex vorbei...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 22 Apr. 2013 15:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das ist wie gesagt sehr einfach.

Ich fange mal mit dem Ziel (NewForm.aspx) an. Dort baust Du JavaScript ein, das den übergebenen Wert aus der URL (z.B. Lookupid=4711) holt und das Lookupfeld setzt. Das Script selbst kannst Du entweder per SharePoint Designer oder auch im Browser über ein Inhalts-Editor-Webpart einsetzen. Als Anleitung kann dieser zwar uralte, aber immer noch gültige Artikel dienen: http://blogs.msdn.com/b/sharepointdesigner/archive/2007/06/13/using-javascript-to-manipulate-a-list-form-field.aspx

Für die Quelle gibt es mehrere Möglichkeiten: man kann auf der DispForm sher einfach alle zugehörigen Detailelemente anzeigen lassen (Einfügen - Verbundene Listen). Dann kann man dort ebenfalls ein Script unterbringen, das die immer vorhandene ID aus der URL holt (ID=4711) und damit einen Link erzeugt, an den diese angehängt ist:
<a href="/site/list/Forms/NewForm.aspx?Lookupid=4711">Neues Detail erstellen</a>

Wenn Du als Quelle eine beliebige Ansicht verwenden möchtest, kannst Du einen eigenen Button im Ribbon unterbringen und/oder das Kontextmenü erweitern. Im Kontextmenü kannst Du dabei das {ItemId} Token verwenden. Im Ribbon SP.ListOperation.Selection.getSelectedItems[0]

Viele Grüße
Andi
af @ evocom de
Blog