Frage

Ich habe eine Liste in SharePoint 2010 mit einigen Spalten. Alle sind Standardtypen. Also habe ich
"Einzelne Textzeile"
"Mehrere Textzeilen"
"Datum und Uhrzeit"
"Wahl"
"Nummer"
"Währung"
"Person oder Gruppe"

Mein Ziel ist es, eine benutzerdefinierte Multifunktionsleistenregisterkarte oder -gruppe zu haben, auf der ich eine Aktion für diese Liste ausführen kann. Als Ausgangspunkt habe ich in meiner Visual Studio-Lösung ein leeres Element erstellt und meine Schaltflächen in Elements.xml eingefügt. Das funktioniert soweit. Ich habe auch herausgefunden, wie man ein Postback macht, um auf einen gedrückten Knopf zu reagieren. Dieses Postback bezieht sich auf eine JavaScript-Datei.

Bevor ich eine Aktion ausführte, versuchte ich zunächst, den angegebenen Inhalt zu lesen und ihn mit alert('first field: ' + field1) zurückzugeben. In der zuerst aufgerufenen Funktion habe ich

function calledPostbackFunction(string button) {  
    var context = SP.ClientContext.get_current();  
    this.site = context.get_site();  
    this.web = context.get_web();  
    context.load(this.site);  
    context.load(this.web);  
    context.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceded(button), Function.createDelegate(this, this.onQueryFailed));

Wie kann ich den Inhalt von aufgelisteten Spaltentypen abrufen? Ich erinnere mich, dass ich einzelne Textzeilen und Auswahlmöglichkeiten lesen konnte, aber der Rest stürzte ab. Also muss ich es wohl irgendwie konvertieren. Aber wie? IntelliSense hilft nicht viel.

SUBQUESTION: Ich würde die Verwendung von EcmaScript überspringen, wenn Sie mir sagen können, wie PostPack in eine CS-Datei ausgeführt wird, in der ich das Client-Objektmodell verwenden kann. Ich habe etwas gefunden, aber nicht funktioniert / verstanden.

Ja, ich denke, das wird einfach, aber es war nicht so. Zumindest weil ich C # nur ein bisschen kenne, kein EcmaScript.

Danke.

War es hilfreich?

Lösung

Okay, ich habe eine Lösung erhalten Sharepoint.Stackoverflow.com vom Benutzer Vardhaman Deshpande .Dies funktioniert.

So ermitteln Sie den Wert der einzelnen Feldtypen:

Title – SP.ListItem.get_item(‘Title‘);

ID – SP.ListItem.get_id();

Url -SP.ListItem.get_item(‘urlfieldname‘).get_url()

Description – SP.ListItem.get_item(‘descriptionfieldname‘).get_description();

Current Version – SP.ListItem.get_item(“_UIVersionString“);

Lookup field – SP.ListItem.get_item(‘LookupFieldName’).get_lookupValue();

Choice Field – SP.ListItem.get_item(‘ChoiceFieldName‘);

Created Date – SP.ListItem.get_item(“Created“);

Modified Date – SP.ListItem.get_item(“Modified“); -> case sensitive does not work with ‘modified’

Created By – SP.ListItem.get_item(“Author“).get_lookupValue());

Modified by – SP.ListItem.get_item(“Editor“).get_lookupValue());

File  – SP.ListItem.get_file();

File Versions -  File.get_versions();.

Content Type – SP.ListItem.get_contentType();

Parent List – SP.ListItem.get_parentList();

von: http://www.learningsharepoint.com/2011/07/06/how-to-get-various-item-fields-using-client-object-model-ecmascript-sharepoint-2010/

UPDATE: Der folgende Code funktioniert und wird getestet.

var item;
function getItemById(itemId){

    var clientContext = new SP.ClientContext.get_current();

    var web = clientContext.get_web();

    var list = web.get_lists().getByTitle('myList');

    item = list.getItemById(itemId);

    clientContext.load(item);

    clientContext.executeQueryAsync(onSuccess, onFailure);
}
function onSuccess(){

    alert(item.get_item("My User column").get_lookupValue());
}
function onFailure(){

    alert('Failure!');
}

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top