Ich habe ein wenig Mühe, einen Wert aus einem Drop-Down-Lookup-Feld zurückgegeben werden. Ich habe den folgenden Code bekommt, die mir die Werte aus der Liste bekommt Ich mache den Nachschlag auf:SharePoint arbeiten mit Lookup-Dropdown-Menüs und Werte erhalten
var siteUrl = _spPageContextInfo.webServerRelativeUrl;
function getDropdownValues(tempNumTitle) {
var clientContext = new SP.ClientContext(siteUrl);
var tempDropdownValueList = clientContext.get_web().get_lists().getByTitle('Temps');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View>' +
'<RowLimit>' +
'100' +
'</RowLimit>' +
'</View>');
this.tempQuery = tempDropdownValueList.getItems(camlQuery);
clientContext.load(tempQuery);
clientContext.executeQueryAsync(
// on success of getting Temp Values from dropdown
// match it with the tempNum entry
function (sender, args) {
var tempDropDownValues = {};
var tempEnumerator = tempQuery.getEnumerator();
while(tempEnumerator.moveNext()) {
var tempItem = tempEnumerator.get_current();
var tempTitle = tempItem.get_item('Title');
var tempId = tempItem.get_item('ID');
tempDropDownValues[tempTitle] = tempId;
}
selectTemp(tempNumTitle, tempDropdownValues)
},
// on failure
function (sender, args) {
console.info('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
);
}
Sie führt diese in Ordnung, mir die Drop-Down-Werte geben. Es ruft dann die Funktion selectTemp mit den Parametern des tempNumTitle, nach dem wir suchen, und der Liste der abgerufenen Dropdown-Werte auf. Hier ist die nächste Funktion:
function selectTemp(tempNumTitle, tempValues) {
var clientContext = new SP.ClientContext(siteUrl);
var tempMatchValueList = clientContext.get_web().get_lists().getByTitle('Numbers-Temp');
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View>' +
'<Query>' +
'<Where>' +
'<Eq>' +
'<FieldRef Name="Title" />' +
'<Value Type="Text">' + tempNumTitle + '</Value>' +
'</Eq>' +
'</Where>' +
'</Query>' +
'</View>');
this.tempMatchValueQuery = tempMatchValueList.getItems(camlQuery);
clientContext.load(tempMatchValueQuery);
clientContext.executeQueryAsync(
// on success
function (sender, args) {
var temp = '';
tempEnumerator = tempMatchValueQuery.getEnumerator();
while(tempEnumerator.moveNext()) {
var tempItem = tempEnumerator.get_current();
temp = tempItem.get_item('Temp0');
}
},
// on failure
function (sender, args) {
console.info('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
);
}
Es ist fast bekommt mir, was ich suche, aber ich habe so etwas wie dies: Temp: {$ 1E_1: 3, $ 2e_1: "Temp 3"}
Wo möchte ich den Wert von $ 2e_1 oder "Temp 3". Wie kann ich diesen Wert erhalten, ohne nur temp ["$ 2e_1"]?
Ihnen sehr danken. Das tut es. Ich wusste einfach nichts über das .get_lookup __(); Routine oder sah nicht hart genug. Du bist großartig! –