2016-01-15 44 views
-1

我想使用项目列表中的值来使用列表的内容填充多个不同的页面。例如,在列表中,我将拥有项目A和项目B等。我想创建一个专门用于项目A的站点,并且拥有项目列表中的内容(即截止日期,在项目中工作的员工等)填写在站点“项目A”的模板中使用脚本编辑器Web部件。我被告知这可以通过JQuery动态完成,这样,如果稍后更改列表中的项目,那么该特定项目的站点将反映列表中的更改。sharepoint动态地将列表项添加到页面

因此,作为一个例子,可以说名单如下:

项目列表
项目员工位置
项目A,员工A 123,A ST
项目B员工B 234b的圣
项目C员工ç345ç圣

然后,我会希望自己的网站有一个脚本编辑器,看起来像这样:

项目A(标题)

员工A

位置一个

回答

0

这很简单。我更希望您可以通过项目名称在ScriptEditor WebPart中调用列表内容。这意味着您从列表I - >项目A中获取项目名称,使用相同的标题 - >项目A并通过脚本编辑器为该项目创建页面或站点,您将通过标题(项目名称)查询项目详细信息列表。唯一的事情是,项目需要有独特的名称。

var siteUrl = '/sites/MySiteCollection'; 

function retrieveListItems() { 

    var clientContext = new SP.ClientContext(siteUrl); 
    var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); 

    var camlQuery = new SP.CamlQuery(); 
    camlQuery.set_viewXml('<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' + 
     '<Value Type=\'Number\'>1</Value></Geq></Where></Query><RowLimit>10</RowLimit></View>'); 
    this.collListItem = oList.getItems(camlQuery); 

    clientContext.load(collListItem); 

    clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));   

} 

function onQuerySucceeded(sender, args) { 

    var listItemInfo = ''; 

    var listItemEnumerator = collListItem.getEnumerator(); 

    while (listItemEnumerator.moveNext()) { 
     var oListItem = listItemEnumerator.get_current(); 
     listItemInfo += '\nID: ' + oListItem.get_id() + 
      '\nTitle: ' + oListItem.get_item('Title') + 
      '\nBody: ' + oListItem.get_item('Body'); 
    } 

    alert(listItemInfo.toString()); 
} 

function onQueryFailed(sender, args) { 

    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); 
} 

,而不是使用如本实施例,以查看listItems中数据所示的警报并且,还可以通过

$("myDIV_ID").update("My text"); 

分配列表项到一个div容器的值从How to: Retrieve List Items Using JavaScript

+0

太棒了,谢谢你!我假设在retrieveListItems方法下,“siteUrl”变量应该用实际的URL填充?此外,此代码是否需要在

相关问题