2016-09-15 91 views
0

我有一個下拉菜單,當我點擊一個項目時,將我重定向到一個網站。使用Javascript在下拉菜單中檢索SharePoint列表項目

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

我想在SharePoint中使用此腳本,我想知道如何從SharePoint列表中檢索名稱和鏈接。

我的SharePoint列表被命名爲 「WEB」,它有兩列:

  • 「標題」(文本)
  • 「鏈接」(HREF)
+0

您使用的是哪個版本的SharePoint? – Thriggle

回答

0

該代碼從數據列表。 將其粘貼到控制檯以查看其工作或腳本編輯器Web部件。

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

根據您使用的是哪個版本的SharePoint,答案可能會有所不同。我們目前在我們的Production環境中運行SharePoint 2010,並且過去曾使用SPServices庫來執行此類操作。你可以找到源代碼和文檔在這裏:

https://spservices.codeplex.com/

一個基本的例子會是這個樣子:

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

爲了得到這個運行,需要在頁面上註冊適當版本的SPServices腳本和jQuery庫。這在上面引用的codeplex網站上有詳細記錄。