SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Dropdownmenü einer Spalte auslesen

bewertet von 0 Usern
Nicht beantwortet Dieser Beitrag hat 0 Geprüfte Antworten | 5 Antworten | 2 Followers

Ohne Rang
17 Beiträge
Pyro erstellt in 9 Aug 2016 15:37

Hallo,

ich habe eine Aufgabenliste mit einer Spalte "Status". In dieser Spalte kann ein Status aus einem Dropdownmenü ausgewählt werden. Nun möchte ich gerne alle Werte auslesen, die im Dropdownmenü zu Auswahl stehen.

Ich habe die Liste soweit auslesen können, dass ich eine Variable "listItem" habe, welche alle Informationen enthalten müsste. Mir ist aber nicht klar wie ich die möglichen Auswahlmöglichkeiten aus dieser Variable auslesen kann.

 

function DropDownLesen() {
    var ctx = new SP.ClientContext.get_current();
    var list = ctx.get_web().get_lists().getByTitle("Tasks");
    var listItem = list.get_fields().getByInternalNameOrTitle("Status");

    ???
}

Alle Antworten

Top-10-Beitragsschreiber
18.902 Beiträge

Ich würde die Variable nicht listItem nennen - es ist ein Field. Und so kommt man an die Choices:

http://spdailytips.blogspot.de/2011/11/retrieve-all-choice-field-values-using.html

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge

Wenn ich den Code so übernehme bekommen ich eine Fehlermeldung:

Sys.ArgumentNullException: Sys.ArgumentNullException: Value cannot be null.
Parameter name: clientObject

Dies scheint daran zu liegen das bei "context.load();" die Klammer leer ist. Ich habe stattdessen "context.load(deptChoiceField);" verwendet, so wie hier beschrieben: https://haseebakhtar.wordpress.com/2012/07/10/how-to-retrieve-all-choice-field-values-using-ecmascript-sharepoint-2010/

Mein Code sieht jetzt folgendermaßen aus:

function GetChoiceValues() {
    var context = new SP.ClientContext.get_current();
    var web = context.get_web();
    //context.load();
   
    var taskList = web.get_lists().getByTitle("Tasks");
    var field = taskList.get_fields().getByInternalNameOrTitle("Status"); 
    var deptChoiceField = context.castTo(field,SP.FieldChoice);
    context.load(deptChoiceField);
    context.executeQueryAsync(Function.createDelegate(this, this.onSuccessMethod),Function.createDelegate(this, this.onFailureMethod));
}
   
function onSuccessMethod(sender, args) {
    alert("Test 1");
    var choices = deptChoiceField.get_choices();
    alert("Test 2");
    listBoxControl1.Items.Add(choices);
    alert("Choices: (" + choices.length + ") - " + choices.join(", "));
}

function onFailureMethod(sender, args) {
    alert("failed. Message:" + args.get_message());
}

Ich bekomme nun keine Fehlermeldung mehr, mir wird aber auch nur "Test 1" ausgegeben. Kann es sein das "deptChoiceField.get_choices();" so nicht mehr in Sharepoint 2013 funktioniert? Oder ist ein anderer Fehler im Code?

 

Gruß
André

Top-50-Beitragsschreiber
234 Beiträge

Hey Pyro,

ich habe vor kurzem auch mal einen Blogbeitrag geschrieben indem es darum geht, einen speziellen Dropdownwert automatisch zu setzen.

Vielleicht ist das ja auch interessant für dich.

https://afrait.com/blog/auto-populate-list-column-de/

Grüße

 

Patrick

Zu meinem SharePoint Blog: afraIT

Top-10-Beitragsschreiber
18.902 Beiträge

Die Variable deptChoicesField ist in der Funktion GetChoiceValues definiert und deshalb in onSuccessMethod unbekannt. Das hättest Du aber im Debugger selbst sehr leicht feststellen können...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
17 Beiträge

Ah danke für den Tip jetzt funktioniert es auch ;)

@Patrick:
Danke für den Link, dass wird evtl. später intressant für mich. Ich habe mir die Seite auf jeden Fall einmal notiert. :)

 

Gruß
André

Seite 1 von 1 (6 Elemente) | RSS