Javascript 使用Datatables在Sharepoint列表中进行行分组和小计
您好,我正在使用一个Sharepoint列表,我正在使用DataTables显示该列表,我引用了一篇文章,我要进行分组,但我无法获得组总数 在我分组的这个字段中,有一个计算字段,名为Heirarch。例如,字段值通常类似于大写字母。它是两个字段的串联 下面是我的代码Javascript 使用Datatables在Sharepoint列表中进行行分组和小计,javascript,jquery,html,css,datatables,Javascript,Jquery,Html,Css,Datatables,您好,我正在使用一个Sharepoint列表,我正在使用DataTables显示该列表,我引用了一篇文章,我要进行分组,但我无法获得组总数 在我分组的这个字段中,有一个计算字段,名为Heirarch。例如,字段值通常类似于大写字母。它是两个字段的串联 下面是我的代码 <script type="text/javascript" charset="utf8" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<script type="text/javascript" charset="utf8" src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
<!-- DataTables CSS -->
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/r/dt/dt-1.10.9/datatables.min.css"/>
<!-- DataTables -->
<script type="text/javascript" src="https://cdn.datatables.net/r/dt/dt-1.10.9/datatables.min.js"></script>
<script type="text/javascript" src="http://jquery-datatables-row-grouping.googlecode.com/svn/trunk/media/js/jquery.dataTables.rowGrouping.js"></script>
<style type="text/css">
tr.group, tr.group:hover {
background-color: #ddd !important;
}
.pocell {
font-weight:bold;
}
</style>
<table id="example" class="display" cellspacing="0" width="100%">
<thead>
<tr>
</tr>
</thead>
</table>
<script type="text/javascript">
$(document).ready(function() {
var call = $.ajax({
url: _spPageContextInfo.webAbsoluteUrl + "/_api/Web/Lists/GetByTitle('Demo%20Custom%20List')/items?$select=Hierarch,Title,Year2015,Year2016,Year2017,Year2018,Year2019,Exp_x0020_Total",
type: "GET",
dataType: "json",
headers: {
Accept: "application/json;odata=verbose"
}
});
call.done(function (data,textStatus, jqXHR){
var marker;
var table = $('#example').DataTable({
"aaData": data.d.results,
"columns": [
{
"title": "Hierarchy",
"mData": "Hierarch",
"visible": false
}, {
"title": "Title",
"mData": "Title"
}, {
"title": "Year2015",
"mData": "Year2015",
"sortable": false
}, {
"title": "Year2016",
"mData": "Year2016",
"sortable": false
}, {
"title": "Year2017",
"mData": "Year2017",
"sortable": false
}, {
"title": "Year2018",
"mData": "Year2018",
"sortable": false
}, {
"title": "Year2019",
"mData": "Year2019",
"sortable": false
}, {
"title": "Total Expense",
"mData": "Exp_x0020_Total",
"sortable": false
}
],
"drawCallback": function (settings) {
var api = this.api();
var rows = api.rows({
page: 'current'
}).nodes();
var last = null;
api.column(0, {
page: 'current'
}).data().each(function (group, i) {
if (last !== group) {
$(rows).eq(i).before(
$("<tr></tr>", {
"class": "group",
"data-id": group
}).append($("<td></td>", {
"colspan": 1,
"class": "pocell",
"text": "Hierarch # " + group.split('_').join('.')
})).append($("<td></td>", {
"id": "e" + group,
"class": "noCount",
"text": "60.00"
})).append($("<td></td>", {
"id": "f" + group,
"class": "noCount",
"text": "60.00"
})).append($("<td></td>", {
"id": "g" + group,
"class": "noCount",
"text": "50.00"
})).append($("<td></td>", {
"id": "h" + group,
"class": "noCount",
"text": "40.00"
})).append($("<td></td>", {
"id": "i" + group,
"class": "noCount",
"text": "30.00"
})).append($("<td></td>", {
"id": "j" + group,
"class": "noCount",
"text": "20.00"
})).prop('outerHTML'));
last = group;
}
val = api.row(api.row($(rows).eq(i)).index()).data();
$("#e" + val.Hierarch.split('.').join('_')).text(parseFloat($("#e" + val.Hierarch.split('.').join('_')).text()) + parseFloat(val.Year2015));
// $("#e" + val.Hierarch).text(parseFloat($("#e" + val.Hierarch).text()) + val.Year2015);
$("#f" + val.Hierarch).text(parseFloat($("#f" + val.Hierarch).text()) + val.Year2015);
$("#g" + val.Hierarch).text(parseFloat($("#g" + val.Hierarch).text()) + val.Year2015);
$("#h" + val.Hierarch).text(parseFloat($("#h" + val.Hierarch).text()) + val.Year2015);
$("#i" + val.Hierarch).text(parseFloat($("#i" + val.Hierarch).text()) + val.Year2015);
$("#j" + val.Hierarch).text(parseFloat($("#j" + val.Hierarch).text()) + val.Year2015);
});
}
});
});
call.fail(function (jqXHR,textStatus,errorThrown){
alert("Error retrieving Tasks: " + jqXHR.responseText);
});
} );
</script>
tr.group,tr.group:悬停{
背景色:#ddd!重要;
}
波塞尔先生{
字体大小:粗体;
}
$(文档).ready(函数(){
var call=$.ajax({
url:_spPageContextInfo.webAbsoluteUrl+“/_api/Web/Lists/GetByTitle('Demo%20Custom%20List')/items?$select=Hierarch,Title,Year2015,Year2016,Year2017,Year2018,Year2019,Exp_x0020_Total”,
键入:“获取”,
数据类型:“json”,
标题:{
接受:“application/json;odata=verbose”
}
});
call.done(函数(数据、文本状态、jqXHR){
var标记;
变量表=$('#示例')。数据表({
“aaData”:数据d.结果,
“栏目”:[
{
“标题”:“层次结构”,
“mData”:“Hierarch”,
“可见”:错误
}, {
“头衔”:“头衔”,
“mData”:“标题”
}, {
“标题”:“2015年”,
“mData”:“2015年”,
“可排序”:false
}, {
“标题”:“2016年”,
“mData”:“2016年”,
“可排序”:false
}, {
“标题”:“2017年”,
“mData”:“2017年”,
“可排序”:false
}, {
“标题”:“2018年”,
“mData”:“2018年”,
“可排序”:false
}, {
“标题”:“2019年”,
“mData”:“2019年”,
“可排序”:false
}, {
“标题”:“总费用”,
“mData”:“Exp\U x0020\U总计”,
“可排序”:false
}
],
“drawCallback”:函数(设置){
var api=this.api();
var rows=api.rows({
页面:“当前”
}).nodes();
var last=null;
api.列(0{
页面:“当前”
}).data().each(函数组,i){
如果(最后!==组){
$(行).eq(i).之前(
$("", {
“类”:“组”,
“数据id”:组
}).append($(“”){
“科尔斯潘”:1,
“类”:“pocell”,
“文本”:“层次结构”+组。拆分(“”“)。联接(“”)
})).append($(“”){
“id”:“e”+组,
“类”:“无计数”,
“文本”:“60.00”
})).append($(“”){
“id”:“f”+组,
“类”:“无计数”,
“文本”:“60.00”
})).append($(“”){
“id”:“g”+组,
“类”:“无计数”,
“文本”:“50.00”
})).append($(“”){
“id”:“h”+组,
“类”:“无计数”,
“文本”:“40.00”
})).append($(“”){
“id”:“i”+组,
“类”:“无计数”,
“文本”:“30.00”
})).append($(“”){
“id”:“j”+集团,
“类”:“无计数”,
“文本”:“20.00”
})).prop(“outerHTML”);
last=组;
}
val=api.row(api.row($(rows.eq(i)).index()).data();
$(“#e”+val.Hierarch.split('.').join(''.')).text(parseFloat($(“#e”+val.Hierarch.split('.')).join('.')).text())+parseFloat(val.Year2015));
//$(“#e”+val.Hierarch).text(parseFloat($(“#e”+val.Hierarch.text())+val.Year2015);
$(“#f”+val.Hierarch).text(parseFloat($(“#f”+val.Hierarch.text())+val.Year2015);
$(“#g”+val.Hierarch).text(parseFloat($(“#g”+val.Hierarch.text())+val.Year2015);
$(“#h”+val.Hierarch).text(parseFloat($(“#h”+val.Hierarch.text())+val.Year2015);
$(“#i”+val.Hierarch).text(parseFloat($(“#i”+val.Hierarch.text())+val.Year2015);
$(“#j”+val.Hierarch).text(parseFloat($(“#j”+val.Hierarch.text())+val.Year2015);
});
}
});
});
call.fail(函数(jqXHR、textStatus、errorshown){
警报(“检索任务时出错:+jqXHR.responseText”);
});
} );