发这个贴的原因,是因为 是因为 是因为啥来着,忘了 那就是因为你,因为你 。
/** * @author 张建新 * @数据表格加载 * @callback 无 * @DataType tableTools.init(@Coulnms) <-调用方式 * @Coulnms List result * (@所在div,@列数据(以及类型),@表格装载数据,@表头数据(中文),@是否激活右键菜单(右键可以开启只读模式),@是否表格只读) **/ var HandtableTools = { /** * HandtableTools 工具初始化方法 * @param {Object} tableContainerDiv 表格载体Div * @param {Object} tableColumnInfo 表格列信息 * @param {Object} contextMenuFlag 是否显示右键列表 * @param {Object} readOnlyFlag 表格是否只读 */ initColumnsType: function(tableContainerDiv, tableColumnInfo, contextMenuFlag, readOnlyFlag) { /*初始化表格基本信息*/ HandtableTools.tableContainerDiv = tableContainerDiv; HandtableTools.tableColumnInfo = tableColumnInfo; HandtableTools.contextMenuFlag = contextMenuFlag; HandtableTools.readOnlyFlag = readOnlyFlag; }, /** * 当前表格容器Div */ tableContainerDiv: null, /** * 当前表格列基本信息 */ tableColumnInfo: null, /** * 是否显示右键列表 */ contextMenuFlag: null, /** * 表是否只读 */ readOnlyFlag: null, /* * 最终插入的数据 */ insertData: null, /** * 表格控制器 */ handsontableControl: null, /** *初始化表格数据 * @param {Object} gridData */ initTableData: function(gridData) { /** * 表格列信息 */ var columnsInfo = []; /** * 表头中文信息 */ var columnsHeadersInfo = []; /** * 初始化插入数据 */ HandtableTools.insertData = new Array(); /** * 遍历表格数据 加载到插入数据 */ for (var i = 0; i < gridData.length; i++) { HandtableTools.insertData[i] = new Object(); for (var j = 0; j < HandtableTools.tableColumnInfo.length; j++) { /**eval('HandtableTools.insertData[' + i +'].' + HandtableTools.tableColumnInfo[j].fieid + "=null");*/ HandtableTools.insertData[i][HandtableTools.tableColumnInfo[j].fieid.toUpperCase()] = 0; } } /** * 设置表格列信息 */ for (var i = 0; i < HandtableTools.tableColumnInfo.length; i++) { columnsInfo.push({ data: '',/**真实列名*/ type: '',/**数据类型*/ readOnly: '',/**列只读*/ comment:''/**注释*/ }); } /**清空数据*/ columnsHeadersInfo.length = 0; /**解析表格列信息 标注中文列名*/ for (var c = 0; c < HandtableTools.tableColumnInfo.length; c++) { /**标注中文列名*/ columnsHeadersInfo.push(HandtableTools.tableColumnInfo[c].alias); } for (var c = 0; c < HandtableTools.tableColumnInfo.length; c++) { /**设置列真实Data*/ columnsInfo[c]['data'] = HandtableTools.tableColumnInfo[c].fieid.toUpperCase(); /**设置列类型*/ columnsInfo[c]['type'] = "" + HandtableTools.tableColumnInfo[c].genre + ""; /**设置comments*/ columnsInfo[c]['comment'] = "" + HandtableTools.tableColumnInfo[c].comat + ""; /**判断是否是主键 如果是主键不允许修改*/ if (HandtableTools.tableColumnInfo[c].ispk == "t" && HandtableTools.tableColumnInfo[c].ispk != "") { columnsInfo[c]['readOnly'] = true; /**可以修改列*/ } else { columnsInfo[c]['readOnly'] = false; /**列不能修改*/ } } console.log(HandtableTools.tableContainerDiv); HandtableTools.obs = columnsInfo; HandtableTools.handsontableControl = new Handsontable(HandtableTools.tableContainerDiv, { colHeaders: columnsHeadersInfo, /**显示列数据中文列名*/ rowHeaders: true, /**显示行号*/ /**minSpareRows: 1,/**预留行*/ stretchH: 'all', /**自适应*/ columnSorting: true, /**序列化*/ /**contextMenu: contextMenu_flag,/**是否开启右键*/ contextMenu:HandtableTools.contextMenuFlag, comments: false, /**开启单个表格注解*/ readOnly: HandtableTools.readOnlyFlag, /**表格是否只读*/ className: "htCenter htMiddle", /**基本样式*/ removeRowPlugin: false, /**删除行插件*/ fixedColumnsLeft: 3,/**设置固定列*/ autoColumnSize:true, /**自适应列*/ manualColumnMove: true, /**左右移动*/ manualRowMove: false, /**数据跟随移动*/ columns: columnsInfo/**表格列信息*/ }); HandtableTools.handsontableControl.clear;/**清除数据*/ HandtableTools.handsontableControl.destroy;/**清除DOM对象*/ HandtableTools.handsontableControl.loadData(gridData); /**表格加载数据*/ }, obs: [], objData: function() { var tempData = HandtableTools.handsontableControl.getData(); for (var i = 0; i < tempData.length; i++) { for (var j = 0; j < HandtableTools.obs.length; j++) { if(tempData[i][j]==null||tempData[i][j]==''){ HandtableTools.insertData[i][HandtableTools.obs[j]["data"].toUpperCase()] = 0.0; }else{ HandtableTools.insertData[i][HandtableTools.obs[j]["data"].toUpperCase()] = tempData[i][j]; } } } } }