| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- (function($) {
- 'use strict';
- var con;
- /**
- * Datatable class
- *
- * @param object element DOM element or jquery element
- * @param object options Datatable options
- */
- var mytable = function(element, options) {
- this.name = name;
- this.con = $(element);
- var cols = options.cols;
- var tableData = options.tableData;
- var rowData = formatTableData(tableData, cols);
- clearTable(cols);
- // 使用data参数更新数据:
- this.con.datatable('load', {
- cols: cols,
- rows:rowData
- }
- );
- function formatTableData(data,cols){
- var rows = [];
- for(var i=0;i<data.length;i++){
- data[i].num=(p_cur-1)*10+i+1;
- rows.push(genRow(data[i],cols));
- }
- return rows;
- }
- function genRow(obj,cols){
- var row = {checked: false, data:null};
- var dArr=[];
- for(var i=0;i<cols.length;i++){
- if(cols[i].text=='操作') {
- var str='<a href="#" onclick="showEditConstant('+obj[cols[i].field]+')"><i class="icon icon-edit"></i> 修改</a><a href="#" onclick="deleteConstant('+obj[cols[i].field]+')"><i class="icon icon-remove-circle"></i> 删除</a>';
- dArr.push(str);
- }else{
- dArr.push(obj[cols[i].field]);
- }
- }
- row.data=dArr;
- return row;
- }
- function clearTable(cols){
- $(element).datatable( {
- checkable:false,
- sortable:false,
- data: {
- cols: cols,
- rows:[]
- }
- });
- }
- };
- // default options
- mytable.DEFAULTS = {
- container:"",
- pages:'',
- curr:'',
- groups:'',
- first:1,
- last:1,
- prev:1,
- next:1,
- jump:null
- };
- // Get options
- mytable.prototype.getOptions = function(options) {
- var $e = this.$;
- options = $.extend({}, DataTable.DEFAULTS, this.$.data(), options);
- options.tableClass = options.tableClass || '';
- options.tableClass = ' ' + options.tableClass + ' table-datatable';
- $.each(['bordered', 'condensed', 'striped', 'condensed', 'fixed'], function(idx, cls) {
- cls = 'table-' + cls;
- if($e.hasClass(cls)) options.tableClass += ' ' + cls;
- });
- if($e.hasClass('table-hover') || options.rowHover) {
- options.tableClass += ' table-hover';
- }
- if(!options.checkable || !$.fn.selectable) options.selectable = false;
- this.options = options;
- };
- // Load data form options or table dom
- mytable.prototype.load = function(data) {
- var options = this.options,
- cols;
- this.render();
- };
- // Render datatable
- mytable.prototype.render = function() {
- var that = this;
-
- };
- // Bind global events
- mytable.prototype.bindEvents = function() {
- var that = this,
- data = this.data,
- options = this.options,
- $datatable = this.$datatable;
- var $dataSpans = that.$dataSpans = $datatable.children('.datatable-head, .datatable-rows').find('.datatable-span');
- var $rowsSpans = that.$rowsSpans = $datatable.children('.datatable-rows').children('.datatable-rows-span');
- var $headSpans = that.$headSpans = $datatable.children('.datatable-head').children('.datatable-head-span');
- var $cells = that.$cells = $dataSpans.find('td, th');
- var $dataCells = that.$dataCells = $cells.filter('td');
- that.$headCells = $cells.filter('th');
- var $rows = that.$rows = that.$rowsSpans.find('.table > tbody > tr');
- };
- $.fn.mytable = function(option) {
- return this.each(function() {
- var $this = $(this);
- new mytable(this,option);
- });
- };
- // $.fn.pager.Constructor = mytable;
- }(jQuery));
|