Kaskadierende Dropdown Felder mit SharePoint Designer

In einem anderem Blog Eintrag habe ich bereits beschrieben, wie man in Infopath mit kaskadierenden Dropdown Boxen arbeiten kann. Die Infopath Services stehen jedoch nur zur Verfügung, wenn man auch die SharePoint Enterprise CAL´s hat. Anbei eine kurze Anleitung, wie man mit SharePoint Designer das Problem lösen kann.

Eines vorweg, ich persönlich bin kein großer Freund des SharePoint Designers. Mit dem SharePoint Designer lassen sich zwar schnell und einfach Probleme lösen, doch sind die Umsetzungen oft schlecht dokumentiert, nicht unbedingt Update sicher und nicht portierbar (Stage – Prod). Den Einsatz sollte jeder für sich selbst abwägen.

Wie bei dem Infopath Artikel geht es darum, in Abhängigkeit von dem ausgewähltem Land, die passenden Städte in einer weiteren Auswahlbox anzuzeigen.

Hierzu benötigen wir zuerst 3 verschiedene SharePoint Listen.

1. Die Liste Länder

2. Die Liste Städte (die Spalte Land ist vom Typ Nachschlagen)

3. Die Liste Auftragsliste (hier soll die EditForm.aspx und die NewForm.aspx angepasst werden)

Land und Stadt sind Nachschlage-Spalten.

Die Kaskadierung der Felder wird per Javascript vorgenommen, welches in die EditForm.aspx und die NewForm.aspx eingefügt werden muss. Zum Glück gibt es bereits hilfreiche Frameworks, die uns die Arbeit erleichtern.

Wir benötigen einmal von Jquery.com das file jquery-1.6.2.min.js sowie die Jquery Library von der SharePoint Codeplex Seite wo wir im ZIP die Dateien jquery.SPServices-0.7.1a.js und jquery.SPServices-0.7.1a.min.js (je nach Version) finden.

Alle 3 Dateien (jquery-1.6.2.min.js, jquery.SPServices-0.7.1a.js und jquery.SPServices-0.7.1a.min.js) müssen wir nun vorab in eine beliebige, für jeden Benutzer zugängliche, Dokumentbibliothek legen. In meinem Beispiel heisst die Dokomentbibliothek einfach „javascript“.

Nun können wir mit dem SharePoint Designer loslegen und für die Auftragsliste die NewForm.aspx bearbeiten. Wir müssen die Bearbeitung im „Erweiterten Modus“ vornehmen, beim speichern der Seite wird die Websitedefinition überschrieben!.

Im Code der Seite NewForm.aspx suchen wir nun die Zeile

<asp:Content ContentPlaceHolderId=“PlaceHolderMain“ runat=“server“>

und fügen direkt darunter folgenden Code ein:

<script language="javascript" type="text/javascript" src="https://SERVERNAME/sites/test/BIBLIOTHEKSNAME/jquery-1.6.2.min.js"></script>
<script language="javascript" type="text/javascript" src="https://SERVERNAME/sites/test/BIBLIOTHEKSNAME/jquery.SPServices-0.7.1a.min.js"></script>
<script language="javascript" type="text/javascript">
 $(document).ready(function() {
  $().SPServices.SPCascadeDropdowns({
   relationshipList: "Städte",
   relationshipListParentColumn: "Land",
   relationshipListChildColumn: "Title",
   parentColumn: "Land",
   childColumn: "Stadt",
   debug: true
  });
});
</script>

Wir speichen die Seite und bestätigen, dass wir  die Websitedefinition überschreiben möchten.

Wenn wir nun ein neues Element in der Liste Auftragsliste erstellen wird uns ausschließlich die passende Auswahl der Städte angezeigt. In gleicher weise muss selbstverständlich auch die EditForm.aspx angepasst werden.

Gruß

Mike Welskopf aus Recklinghausen

Dieser Beitrag wurde unter SharePoint, SharePoint Designer 2010 abgelegt und mit , , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Ein Kommentar zu Kaskadierende Dropdown Felder mit SharePoint Designer

  1. Wexel sagt:

    Guten Tag, ich bin genau so vorgegangen wie Sie es hier beschreiben komme aber leider zu einem Fehler. Bei mir wird in Der NewForm ganz unten noch das Feld Attachments aufgeführt was dazu führt das ich keine Neuen Items speichern kann mit folgender Fehlermeldung:

    Failed to get Value of the „Attachments“ column from the „Attachments“ field type control.

    Können Sie mir sagen wo der Fehler ist?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.