2016-09-15 5 views
0

Ich habe ein Dropdown-Menü, das mich auf eine Website umleitet, wenn ich auf ein Element klicke.Abrufen von SharePoint-Listenelementen mit JavaScript in einem Dropdown-Menü

<select onChange="window.location.href=this.value"> 
    <option value='none' selected>Please Select WebSite...</option> 
    <option value="http://www.Link1.com">Title1</option> 
    <option value="http://www.Link2.com">Title2</option> 
    <option value="http://www.Link3.com">Title3</option> 
</select> 

Ich möchte dieses Skript mit Sharepoint verwenden, und ich frage mich, wie ich den Namen und den Link von einer Sharepoint-Liste abrufen kann.

ist meine Sharepoint-Liste "WEB" genannt und es hat zwei Spalten:

  • "Titel" (Text)
  • "Link" (Href)
+0

Mit welcher Version von SharePoint arbeiten Sie? – Thriggle

Antwort

0

Dieser Code erhält Daten aus Die Liste. Kopieren Sie dies in die Konsole, um zu sehen, ob es funktioniert oder zum Webpart des Skript-Editors.

var ctx = SP.ClientContext.get_current(); 
var list = ctx.get_web().get_lists().getByTitle('WEB'); 
var query = SP.CamlQuery.createAllItemsQuery(); 
var items = list.getItems(query); 
ctx.load(items); 
ctx.executeQueryAsync(function() { 
    for (var i = 0; i < items.get_count(); i++) { 
     var item = items.getItemAtIndex(0); 
     var obj = item.get_fieldValues(); 
     console.log(obj); // this is sharepoint list item object 
     console.log(obj.Title); // the Title 
     console.log(obj.Link); // the Link 
    } 
}); 
0

Je nachdem, welche Version von SharePoint Sie verwenden, kann die Antwort anders lauten. Wir führen derzeit SharePoint 2010 in unserer Produktionsumgebung aus, und ich habe die SPServices-Bibliothek verwendet, um in der Vergangenheit solche Dinge zu tun. Sie können den Quellcode und die Dokumentation finden Sie hier:

var $j10 = $.noConflict(true); 
 

 
$j10(document).ready(function() { 
 

 
    var list = "Current Sites"; 
 

 
    /* Fields within the List you want to utilize or display */ 
 

 
    var fields = "<ViewFields>" + 
 
    "<FieldRef Name='Title' />" + 
 
    "<FieldRef Name='Link' />" + 
 
    "</ViewFields>"; 
 

 
    /* Query parameters for the data set you want to return, in CAML syntax */ 
 

 
    var query = "<Query>" + 
 
    "<OrderBy>" + 
 
    "<FieldRef Name='Title' Ascending='TRUE' />" + 
 
    "</OrderBy>" + 
 
    "</Query>"; 
 

 
    /* Method Call */ 
 

 
    GetListItems(list, fields, query); 
 

 
}); 
 

 
function GetListItems(listName, listFields, listQuery) { 
 
    $j10().SPServices({ 
 

 
    operation: "GetListItems", 
 
    listName: listName, 
 
    CAMLViewFields: listFields, 
 
    CAMLQuery: listQuery, 
 

 
    completefunc: function(xData, Status) { 
 

 
     $j10(xData.responseXML).SPFilterNode("z:row").each(function() { 
 

 
     /* Any processing required for each row of data begins here... */ 
 

 
     /* Get Field Data */ 
 

 
     var name = ($j10(this).attr("ows_SiteName")); 
 
     var url = ($j10(this).attr("ows_Url")); 
 

 
     /* Process and Display Field Data */ 
 

 
     $j10("#yourContainerID").append("<option value='" + url.substr(url.indexOf("#") + 1) + "'>" + name.substr(name.indexOf("#") + 1) + "</option>"); 
 
     }); 
 
    } 
 
    }); 
 
}

Um Sie zu erhalten, dies zu laufen,:

https://spservices.codeplex.com/

Ein einfaches Beispiel wie folgt aussehen würde müssten die entsprechenden Versionen des SPServices-Skripts und der jQuery-Bibliothek auf der Seite registrieren. Dies ist auf der oben genannten Codeplex-Site gut dokumentiert.

Verwandte Themen