sharepoint将列表项动态添加到页面

时间:2016-01-15 17:17:42

标签: jquery jquery-ui sharepoint sharepoint-2013

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

举个例子,假设列表如下:

项目清单
项目员工位置
项目A员工A 123 A St
项目B员工B 234 B St 项目C员工C 345 C St

然后我希望该网站有一个如下所示的脚本编辑器:

项目A(标题)

员工A

地点A

1 个答案:

答案 0 :(得分:0)

这很简单。我希望您通过项目名称调用ScriptEditor WebPart中的列表内容。这意味着您从列表I中获取项目名称 - >项目A,为此Projekt创建具有相同标题的页面或网站 - >项目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数据,您还可以通过

将listitem的值分配给div容器
$("myDIV_ID").update("My text");

来自How to: Retrieve List Items Using JavaScript