var defaultView = { render: function(target, container, frozen){ var state = $.data(target, 'datagrid'); var opts = state.options; var rows = state.data.rows; var fields = $(target).datagrid('getColumnFields', frozen); if (frozen){ if (!(opts.rownumbers || (opts.frozenColumns && opts.frozenColumns.length))){ return; } } var table = ['']; for(var i=0; i'); table.push(this.renderRow.call(this, target, fields, frozen, i, rows[i])); table.push(''); } table.push('
'); $(container).html(table.join('')); }, renderFooter: function(target, container, frozen){ var opts = $.data(target, 'datagrid').options; var rows = $.data(target, 'datagrid').footer || []; var fields = $(target).datagrid('getColumnFields', frozen); var table = ['']; for(var i=0; i'); table.push(this.renderRow.call(this, target, fields, frozen, i, rows[i])); table.push(''); } table.push('
'); $(container).html(table.join('')); }, renderRow: function(target, fields, frozen, rowIndex, rowData){ var opts = $.data(target, 'datagrid').options; var cc = []; if (frozen && opts.rownumbers){ var rownumber = rowIndex + 1; if (opts.pagination){ rownumber += (opts.pageNumber-1)*opts.pageSize; } cc.push('
'+rownumber+'
'); } for(var i=0; i'); if (col.checkbox){ var style = ''; } else { var style = styleValue; if (col.align){style += ';text-align:' + col.align + ';'} if (!opts.nowrap){ style += ';white-space:normal;height:auto;'; } else if (opts.autoRowHeight){ style += ';height:auto;'; } } cc.push('
'); if (col.checkbox){ cc.push(''); } else if (col.formatter){ cc.push(col.formatter(value, rowData, rowIndex)); } else { cc.push(value); } cc.push('
'); cc.push(''); } } return cc.join(''); }, refreshRow: function(target, rowIndex){ this.updateRow.call(this, target, rowIndex, {}); }, updateRow: function(target, rowIndex, row){ var opts = $.data(target, 'datagrid').options; var rows = $(target).datagrid('getRows'); $.extend(rows[rowIndex], row); var css = opts.rowStyler ? opts.rowStyler.call(target, rowIndex, rows[rowIndex]) : ''; var classValue = ''; var styleValue = ''; if (typeof css == 'string'){ styleValue = css; } else if (css){ classValue = css['class'] || ''; styleValue = css['style'] || ''; } var classValue = 'datagrid-row ' + (rowIndex % 2 && opts.striped ? 'datagrid-row-alt ' : ' ') + classValue; function _update(frozen){ var fields = $(target).datagrid('getColumnFields', frozen); var tr = opts.finder.getTr(target, rowIndex, 'body', (frozen?1:2)); var checked = tr.find('div.datagrid-cell-check input[type=checkbox]').is(':checked'); tr.html(this.renderRow.call(this, target, fields, frozen, rowIndex, rows[rowIndex])); tr.attr('style', styleValue).attr('class', classValue); if (checked){ tr.find('div.datagrid-cell-check input[type=checkbox]')._propAttr('checked', true); } } _update.call(this, true); _update.call(this, false); $(target).datagrid('fixRowHeight', rowIndex); }, insertRow: function(target, index, row){ var state = $.data(target, 'datagrid'); var opts = state.options; var dc = state.dc; var data = state.data; if (index == undefined || index == null) index = data.rows.length; if (index > data.rows.length) index = data.rows.length; function _incIndex(frozen){ var serno = frozen?1:2; for(var i=data.rows.length-1; i>=index; i--){ var tr = opts.finder.getTr(target, i, 'body', serno); tr.attr('datagrid-row-index', i+1); tr.attr('id', state.rowIdPrefix + '-' + serno + '-' + (i+1)); if (frozen && opts.rownumbers){ var rownumber = i+2; if (opts.pagination){ rownumber += (opts.pageNumber-1)*opts.pageSize; } tr.find('div.datagrid-cell-rownumber').html(rownumber); } if (opts.striped){ tr.removeClass('datagrid-row-alt').addClass((i+1)%2 ? 'datagrid-row-alt' : ''); } } } function _insert(frozen){ var serno = frozen?1:2; var fields = $(target).datagrid('getColumnFields', frozen); var rowId = state.rowIdPrefix + '-' + serno + '-' + index; var tr = ''; // var tr = '' + this.renderRow.call(this, target, fields, frozen, index, row) + ''; if (index >= data.rows.length){ // append new row if (data.rows.length){ // not empty opts.finder.getTr(target, '', 'last', serno).after(tr); } else { var cc = frozen ? dc.body1 : dc.body2; cc.html('' + tr + '
'); } } else { // insert new row opts.finder.getTr(target, index+1, 'body', serno).before(tr); } } _incIndex.call(this, true); _incIndex.call(this, false); _insert.call(this, true); _insert.call(this, false); data.total += 1; data.rows.splice(index, 0, row); this.refreshRow.call(this, target, index); }, deleteRow: function(target, index){ var state = $.data(target, 'datagrid'); var opts = state.options; var data = state.data; function _decIndex(frozen){ var serno = frozen?1:2; for(var i=index+1; i