easyui动态生成复杂表头

var editRow = undefined;
 var datagrid;
 function toColJson() {
  var jsonText = '{';
  jsonArray = arguments[0];
  var digit = 1;
  for ( var i = 0; i < jsonArray.length; i++) {
   if ((typeof arguments[i + digit]) == 'string')
    jsonText += jsonArray[i] + ': "' + arguments[i + digit] + '"';
   else if ((typeof arguments[i + digit]) == 'function')
    jsonText += jsonArray[i] + ':' + arguments[i + digit] + '';
   else
    jsonText += jsonArray[i] + ':"' + arguments[i + digit] + '"';
   if (i != jsonArray.length - 1) {
    jsonText += ',';
   }
  }
  jsonText += '}';
  return eval('(' + jsonText + ')');
 }
 var keys01 = [ 'title', 'align', 'colspan' ];
 var key02 = [ 'title', 'align', 'colspan', 'field', 'width', 'sortable', 'editor' ];
 //  var keys03 = [ 'title', 'align', 'colspan', 'rowspan' ];
 //  var key04 = [ 'title', 'align', 'colspan', 'rowspan', 'field', 'width', 'sortable' ];

 function load(id) {
  var continentGroupRow = new Array();//合并表头  
  var columnses = new Array();//列  
  $.getJSON("scheduleController.do?datagrid2", {
   id : id
  }, function(r) { //获取数据源
   var endDate = r.maps.endDate;
   var startDate = r.maps.startDate;
   var countdutyTypes = r.maps.countdutyTypes;
   var dutyTypes = r.maps.dutyTypes;
   for ( var i = startDate; i <= endDate; i++) {
    continentGroupRow.push(toColJson(keys01, i + '日', 'center', dutyTypes));
   }

   for ( var i = 0; i <= endDate - startDate; ++i) {
    for ( var j = 0; j < dutyTypes; j++) {
     columnses.push(toColJson(key02, r.dutyType[j].dutyTypeName + '', 'center', 1, r.dutyType[j].dutyTypeName + '', 60, false, 'text'));
    }
   }

   //实例化一个datagrid
   datagrid = $('#tabs_2').datagrid({
    toolbar : [ {
     text : '保存',
     iconCls : 'icon-save',
     handler : function() {
      if (editRow != undefined) {
       datagrid.datagrid('endEdit', editRow);
      }
     }
    }, '-', {
     text : '修改',
     iconCls : 'icon-edit',
     handler : function() {
      edit();
     }
    }, '-', {
     text : '取消编辑',
     iconCls : 'icon-undo',
     handler : function() {
      datagrid.datagrid('unselectAll');
      datagrid.datagrid('rejectChanges');
      editRow = undefined;
     }
    }, '-', {
     text : '取消选中',
     iconCls : 'icon-undo',
     handler : function() {
      datagrid.datagrid('unselectAll');
     }
    }, '-' ],
    idField : 'id',
    singleSelect : true,//只允许选一行  
    fitColumns : false,
    fit : true,
    frozenColumns : [ [ {
     title : '编号',
     field : 'cid',
     width : 150,
     sortable : true,
     checkbox : true
    }, {
     title : '姓名',
     field : 'name',
     width : 60,
     align : "center",
    } ] ],
    onDblClickRow : function(rowIndex, rowData) {
     if (editRow != undefined) {
      datagrid.datagrid('endEdit', editRow);
     }

     if (editRow == undefined) {
      //changeEditorEditRow();/*改变editor*/
      datagrid.datagrid('beginEdit', rowIndex);
      editRow = rowIndex;
      datagrid.datagrid('unselectAll');
     }
    },
    onAfterEdit : function(rowIndex, rowData, changes) {
     console.info(rowData);
     console.info(changes);
     var updated = datagrid.datagrid('getChanges', 'updated');
    },
    columns : [ continentGroupRow, columnses ]
   }).datagrid("loadData", r.specialistVo);//实例化之后立刻载入数据源
  });
 }

posted @ 2013-05-09 19:52  西风烈  阅读(547)  评论(0)    收藏  举报