2
그룹화 기능과 함께 SlickGrid를 사용하고 있으며 이상한 동작이 있습니다.Slickgrid 그룹화 확장/축소 비정상적인 동작
jsFiddle을 확인하십시오. "허용"그룹과, 당신은 "세 번째"를 제외한 모든 옵션이 표시됩니다 확장,하지만 총에 클릭이 (이상한 장소에서)이 옵션 보일 것이다
var ReportData = {
"cols":{
"date":"Date",
"status":"Status",
"dataField":"Data field"
},
"data":[
{"id":0,"date":"First","status":"Accepted","dataField":"1000"},
{"id":1,"date":"Second","status":"Accepted","dataField":"2000"},
{"id":2,"date":"Third","status":"Accepted","dataField":"3000"},
{"id":3,"date":"Fourth","status":"Accepted","dataField":"4000"},
{"id":4,"date":"Fifth","status":"Accepted","dataField":"5000"},
{"id":5,"date":"Sixth","status":"Canceled","dataField":"6000"},
{"id":6,"date":"Seventh","status":"Canceled","dataField":"7000"},
{"id":7,"date":"Eight","status":"Canceled","dataField":"8000"},
{"id":8,"date":"Ninth","status":"Canceled","dataField":"9000"},
{"id":9,"date":"Tenth","status":"Rejected","dataField":"1000"},
{"id":10,"date":"Eleventh","status":"Rejected","dataField":"2000"},
{"id":11,"date":"Twelfth","status":"Rejected","dataField":"3000"}
]
};
var options = {
enableCellNavigation: true,
editable: true,
autoHeight:true,
forceFitColumns: true,
};
function groupBy() {
dataView.setGrouping([{
getter: "status",
aggregators: [
new Slick.Data.Aggregators.Sum("dataField"),
],
collapsed: true,
aggregateCollapsed: true,
lazyTotalsCalculation: true
},{
getter: "date",
aggregators: [
new Slick.Data.Aggregators.Sum("dataField"),
],
collapsed:true,
aggregateCollapsed: true,
lazyTotalsCalculation: true
},]);
}
function sumTotalsFormatter (totals, columnDef) {
var rowData = '';
// Get sum
var val = totals.sum && totals.sum[columnDef.field];
if (val != null) {
rowData += "<b>" + (Math.round(parseFloat(val) * 100)/100) + "</b>";
}
return rowData;
}
function makeGridColumns(data){
var that = this;
var columns = [];
var id = 0;
// Parse given result for SlickGrid
jQuery.each(data, function(label, name) {
var item = {
id: id++,
field: label,
name: name,
focusable: false,
groupTotalsFormatter: sumTotalsFormatter,
}
columns.push(item);
});
return columns;
}
$(function() {
var groupItemMetadataProvider = new Slick.Data.GroupItemMetadataProvider();
dataView = new Slick.Data.DataView({
groupItemMetadataProvider: groupItemMetadataProvider,
inlineFilters: true
});
var columns = makeGridColumns(ReportData.cols);
grid = new Slick.Grid("#myGrid", dataView, columns, options);
// register the group item metadata provider to add expand/collapse group handlers
grid.registerPlugin(groupItemMetadataProvider);
// wire up model events to drive the grid
dataView.onRowCountChanged.subscribe(function (e, args) {
grid.updateRowCount();
grid.render();
});
dataView.onRowsChanged.subscribe(function (e, args) {
grid.invalidateRows(args.rows);
grid.render();
});
// initialize the model after all the events have been hooked up
dataView.beginUpdate();
dataView.setItems(ReportData.data);
groupBy();
dataView.endUpdate();
})
. 예를 들어 "Second"옵션을 클릭하면 "Third"가 표시됩니다.
원본 SlickGrid 예제를 사용하여 처음부터 이것을 만들려고했지만 같은 문제가 발생했습니다.
몇 가지 조언이나 해결책을 제공해 줄 수 있습니까?
감사합니다.