2014-04-11 4 views
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 예제를 사용하여 처음부터 이것을 만들려고했지만 같은 문제가 발생했습니다.

몇 가지 조언이나 해결책을 제공해 줄 수 있습니까?

감사합니다.

답변