1. 程式人生 > >Easyui表格擴充套件子網格的使用、全程式碼

Easyui表格擴充套件子網格的使用、全程式碼

#關於easyui子網格的官方文件介紹:
easyui建立子網格
專案完成後效果圖

<div id="expressManageDialog" class="easyui-dialog" style="width:50%;height:100%;overflow:auto;" data-options="title:'快遞公司資訊管理',modal:true, closed:true,onClose:function() {}">
	<table id="carriageGrid"></table>
</div>
//js
var editIndex=undefined;
$
(document).ready(function() { loadExpressManageGrid(); loadDetailView(); } function loadExpressManageGrid(){ carriageGrid = $('#carriageGrid').datagrid({ url : ctp + "/cloud/carriageManage/carriageNewInfo", cache : false, fit : true, striped : true,//隔行變色 nowrap : false, fitColumns : true,
checkOnSelect : true, singleSelect:true, pagination : true, pageSize : 50, pageList : [ 20, 50, 100 ], loadMsg : '正在載入資料...', showHeader : true, method : 'get', toolbar : [ { iconCls : 'icon-add', handler : function() { addExpress(); }, text : "新增快遞公司" }, '-', { iconCls :
'icon-edit', handler : function() { var rows = carriageGrid.datagrid('getChecked'); if (rows.length != 1) { $.messager.alert('提示', '請選擇一條記錄進行修改', 'info'); return; } var index = carriageGrid.datagrid('getRowIndex', rows[0]); editExpress(index); }, text : "修改" }, '-', { iconCls : 'icon-remove', handler : function() { var rows = carriageGrid.datagrid('getChecked'); if (rows.length < 1) { $.messager.alert('提示', '請選擇一條記錄', 'info'); return; } var ids = []; for (var i = 0; i < rows.length; i++) { ids.push(rows[i].carrId); } removeExpress(ids.join()); }, text : "刪除" } ], columns : [ [ { field : 'carrId', title : '', width : 0, align : 'center', checkbox : true }, { field : 'carrName', title : '快遞公司', width : '25%', align : 'center' }, { field : 'carrDesc', title : '快遞描述', width : '25%', align : 'left' }, { field : 'carrPrice', title : '首重價格(CNY)', width : '25%', align : 'center' }, { field : 'carrPriceAdd', title : '續重價格(CNY)', width : '25%', align : 'center' } ] ], onLoadSuccess : function() { $(this).datagrid("fixRowHeight"); //$('#carriageGrid').datagrid('fixDetailRowHeight',index); } }); } //載入子網格 function loadDetailView() { $('#carriageGrid').datagrid({ view : detailview, detailFormatter : function(index, row) { return '<div><table class="expandRowTb"></table></div>'; }, onExpandRow : function(index, row) { var ddv = $(this).datagrid('getRowDetail',index).find('table.expandRowTb'); ddv.datagrid({ url : ctp + "/cloud/carriageManage/carriageDetailViewInfo?expressId=" + row.carrId, fitColumns : true, singleSelect : true, rownumbers : true, loadMsg : '', height : 'auto', toolbar:[{ text:'儲存', iconCls:'icon-save', handler:function(){ endEditing(ddv); //var expandRowTb = $('#carriageGrid').datagrid('getRowDetail',index).find('table.expandRowTb'); //alert(ddv); var expandRowTbChanges = ddv.datagrid('getChanges'); //alert('expandRowTbChanges:'+expandRowTbChanges); var params = { expandRowTbChanges:expandRowTbChanges }; $.ajax({ url : getCommonUrl('/cloud/carriageManage/saveExpandRowTbChanges'), type : 'POST', data : JSON.stringify(params), contentType : "application/json; charset=utf-8", dataType : 'json', success : function(obj) { $.messager.progress('close'); } }); } }], columns : [ [ { field : 'areaName', title : '省份', width : 100 }, { field : 'firstPrice', title : '首重價格(CNY)', width : 100, editor:{ type:'numberbox', options:{ precision:2 }, required:true } }, { field : 'addPrice', title : '續重價格(CNY)', width : 100, editor:{ type:'numberbox', options:{ precision:2 }, required:true } } ] ], onResize : function() { $('#carriageGrid').datagrid('fixDetailRowHeight', index); }, onLoadSuccess : function() { setTimeout(function() { $('#carriageGrid').datagrid('fixDetailRowHeight', index); }, 0); editIndex = undefined;//主網格換行 }, onClickRow:function(index1,row1){ if (editIndex != index1){ if (endEditing(ddv)){ ddv.datagrid('selectRow', index1) .datagrid('beginEdit', index1); editIndex = index1; } else { ddv.datagrid('selectRow', editIndex); } } } }); $('#carriageGrid').datagrid('fixDetailRowHeight', index); } }); } function endEditing(ddv){ var changes = ddv.datagrid('getChanges'); if (editIndex == undefined){return true} if (ddv.datagrid('validateRow', editIndex)){//驗證前一行 //返回編輯器,結束編輯 ddv.datagrid('endEdit', editIndex); editIndex = undefined; return true; } else { return false; } }

以上程式碼經測試無bug,請根據具體需求修改使用