Question

J'ai une liste dans SharePoint 2010 avec certaines colonnes. Tous sont des types par défaut. Donc j'ai
"Ligne unique de texte"
"Ligne de texte multiple"
"Date et l'heure"
"Choix"
"Numéro"
"Devise"
"Personne ou groupe"

Mon objectif est d'avoir un onglet ou un groupe de ruban personnalisé où je peux effectuer une action sur cette liste. En tant que point de départ, j'ai créé un élément vide dans ma solution Visual Studio et mis à l'intérieur des éléments.xml mes boutons. Cela fonctionne jusqu'à présent. J'ai également compris comment faire un post-dos pour réagir sur le bouton appuyé. Ce post-dos fait référence à un fichier JavaScript.

Avant d'effectuer une action, j'ai d'abord essayé de lire le contenu donné et de les retourner en utilisant alert('first field: ' + field1). Dans la fonction d'abord appelée j'ai

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));

Comment puis-je obtenir le contenu à partir de types de colonnes répertoriées? Je me souviens que j'ai pu lire la ligne de texte unique et le choix, mais le reste s'est écrasé. Je suppose donc que je dois le convertir de toutes les manières. Mais comment? Intellisense ne aide pas beaucoup.

Sous-questionnement: je sauterais à l'aide d'ECMascript si vous pouvez me dire comment dopostback dans un fichier .cs où je peux utiliser le modèle d'objet client. J'ai trouvé quelque chose mais je n'ai pas fonctionné / compris.

Oui, je pensais que ce sera facile, mais ce n'était pas le cas. Au moins parce que je ne connais que C # un peu, pas d'ECMAScript.

Merci.

Était-ce utile?

La solution

D'accord, j'ai une solution Sharepoint.stackoverflow.com de l'utilisateur Vardhaman Deshpande. Cela marche.

Voici comment obtenir la valeur de chaque type de champ:

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();

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

METTRE À JOUR: Le code suivant fonctionne et testé.

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!');
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top