1. 合並 datagrid 的表頭信息【基礎】,茗洋芳竹嘗試Easy API的例子的延伸
部分效果圖:
部分代碼:

$('#dg').datagrid({ url: getUrl(), method: 'post', fitColumns: true, pagination: isPage, rownumbers: true, singleSelect: true, nowrap: false, pageList: [15, 30, 45, 60], columns: [[ { field: 'InsureNo', title: '投保單號', width: 150, align: 'center', formatter: outputFormatter, rowspan: 2 }, { field: 'Applicant', title: '投保人', width: 110, align: 'center', rowspan: 2 }, { field: 'Insurant', title: '被保險人', width: 110, align: 'center', rowspan: 2 }, { field: 'CompanyName', title: '保險公司', width: 120, align: 'center', rowspan: 2 }, { field: 'ProductShow', title: '產品類型', width: 150, align: 'center', rowspan: 2 }, { field: 'GetMoney', title: '保費', align: 'center', width: 90, align: 'center', formatter: MoneyFormatter, rowspan: 2 }, { field: 'PayeeName', title: '收款方', width: 80, align: 'center', rowspan: 2 }, { title: '狀態', align: 'center', colspan: 5 }, { field: 'Id', title: '操作', align: 'center', width: 60, rowspan: 2, formatter: function (value, row, index) { var a = "<a href='javascript:view(" + value + ")'>查看</a>"; return a; } } ], [ { field: 'OutStateName', title: '出單狀態', width: 80, align: 'center', formatter: OutStateFormatter }, { field: 'ReceiveStateName', title: '收款狀態', width: 80, align: 'center', formatter: ReceiveStateFormatter }, { field: 'PayStateName', title: '付款狀態', width: 80, align: 'center', formatter: PayStateFormatter }, { field: 'SendStateName', title: '寄送狀態', width: 80, align: 'center', formatter: SendStateFormatter }, { field: 'ReceStateName', title: '簽收狀態', width: 80, align: 'center', formatter: ReceStateFormatter } ] ] });
看代碼你應該就能看懂了。
======================== 我是茗洋芳竹,歡迎加群 :193247142 (WEB豐富資源群)==========
升級一下,此時你就要懂的原理了
效果圖:
下面我來講一下代碼,讓你隨心所欲的可以使用了
1 $('#dg').datagrid({ 2 url: getUrl(), 3 method: 'post', 4 fitColumns: true, 5 pagination: isPage, 6 rownumbers: true, 7 singleSelect: true, 8 nowrap: false, 9 pageList: [15, 30, 45, 60], 10 columns: [[ 11 { field: 'InsureNo', title: '投保單號', width: 150, align: 'center', formatter: outputFormatter, rowspan: 2 }, 12 { title: '基本信息', align: 'center', colspan: 5 }, 13 { field: 'PayeeName', title: '收款方', width: 80, align: 'center', rowspan: 2 }, 14 { title: '狀態', align: 'center', colspan: 5 }, 15 { field: 'Id', title: '操作', align: 'center', width: 60, rowspan: 2, 16 formatter: function (value, row, index) { 17 var a = "<a href='javascript:view(" + value + ")'>查看</a>"; 18 return a; 19 } 20 } 21 ], [ 22 { field: 'Applicant', title: '投保人', width: 110, align: 'center', rowspan: 2 }, 23 { field: 'Insurant', title: '被保險人', width: 110, align: 'center', rowspan: 2 }, 24 { field: 'CompanyName', title: '保險公司', width: 120, align: 'center', rowspan: 2 }, 25 { field: 'ProductShow', title: '產品類型', width: 150, align: 'center', rowspan: 2 }, 26 { field: 'GetMoney', title: '保費', align: 'center', width: 90, align: 'center', formatter: MoneyFormatter, rowspan: 2 } 27 , 28 { field: 'OutStateName', title: '出單狀態', width: 80, align: 'center', formatter: OutStateFormatter }, 29 { field: 'ReceiveStateName', title: '收款狀態', width: 80, align: 'center', formatter: ReceiveStateFormatter }, 30 { field: 'PayStateName', title: '付款狀態', width: 80, align: 'center', formatter: PayStateFormatter }, 31 { field: 'SendStateName', title: '寄送狀態', width: 80, align: 'center', formatter: SendStateFormatter }, 32 { field: 'ReceStateName', title: '簽收狀態', width: 80, align: 'center', formatter: ReceStateFormatter }, 33 34 35 ] 36 37 ] 38 });
我們重點看從columns屬性:
整體結構是這樣子的 [ [一些列A],[一些列B] ]
首先我們的表頭是兩行,所以,在A列系列里面,rowspan:2
到了合並列的地方,我們只顯示表頭的文字,添加 title屬性,並使用colspan等於了5,接下來我們又添加了一個列來測試,然后又到了一個合並的地方,colspan=5
這兩個合並的地方,我們可以理解為 一個占位符,每個占5列。
好了,接下來,我們看第二個[B列系列]
這里面的順序還是很重要的,從上往下,共有10個,也就是對應上面的,5,5長度的兩個占位符,1-5給第一個使用了colspan的位置,6-10給第二個
不知道你懂了沒有?
======================== 我是茗洋芳竹,歡迎加群 :193247142 (WEB豐富資源群)==========
再升級一下,這下要看你的理解了,你真的要掌握技巧了
效果圖:
代碼:
$('#dg').datagrid({ url: getUrl(), method: 'post', fitColumns: true, pagination: isPage, rownumbers: true, singleSelect: true, nowrap: false, pageList: [15, 30, 45, 60], columns: [ [ { field: 'InsureNo', title: '投保單號', width: 150, align: 'center', formatter: outputFormatter, rowspan: 3 }, { title: '基本信息', align: 'center', colspan: 5 }, { field: 'PayeeName', title: '收款方', width: 80, align: 'center', rowspan: 3 }, { title: '狀態', align: 'center', colspan: 5 }, { field: 'Id', title: '操作', align: 'center', width: 60, rowspan: 3, formatter: function (value, row, index) { var a = "<a href='javascript:view(" + value + ")'>查看</a>"; return a; } } ],[ { field: 'Applicant', title: '投保人', width: 110, align: 'center', rowspan: 2 }, { field: 'Insurant', title: '被保險人', width: 110, align: 'center', rowspan: 2 }, { field: 'CompanyName', title: '保險公司', width: 120, align: 'center', rowspan: 2 }, { field: 'ProductShow', title: '產品類型', width: 150, align: 'center', rowspan: 2 }, { field: 'GetMoney', title: '保費', align: 'center', width: 90, align: 'center', formatter: MoneyFormatter, rowspan: 2 } , { title: '基本狀態', align: 'center', colspan: 3 }, { title: '高級狀態', align: 'center', colspan: 2 } ], [ { field: 'OutStateName', title: '出單狀態', width: 80, align: 'center', formatter: OutStateFormatter }, { field: 'ReceiveStateName', title: '收款狀態', width: 80, align: 'center', formatter: ReceiveStateFormatter }, { field: 'PayStateName', title: '付款狀態', width: 80, align: 'center', formatter: PayStateFormatter }, { field: 'SendStateName', title: '寄送狀態', width: 80, align: 'center', formatter: SendStateFormatter }, { field: 'ReceStateName', title: '簽收狀態', width: 80, align: 'center', formatter: ReceStateFormatter }, ] ] });
對的,我們一共三行,第一行里面填充了2個占位符,每個長度為5
我們在第二長度5的占位符里面,繼續開辟占位符,基本狀態和高級狀態,那么這些面的具體列在哪里呢
對的,我們繼續在下面添加一個[上一個[]里面的占位列],還是跟順序有關。
懂了嗎?
======================== 我是茗洋芳竹,歡迎加群 :193247142 (WEB豐富資源群)==========
獨家偏方,自定義表頭,注意這里列可不能隨便設寬度了,否則寬度會錯位的,不過有辦法解決的
①定義一個 table,並使用 class="easyui-datagrid"

<table class="easyui-datagrid" id="dg"> <thead> <tr> <th data-options="field:'InsureNo',align:'center', formatter: outputFormatter " rowspan="2"> 投保單號 </th> <th data-options="field:'Applicant',align:'center'" rowspan="2"> 投保人 </th> <th data-options="field:'Insurant',align:'center'" rowspan="2"> 被保險人 </th> <th data-options="field:'CompanyName',align:'center'" rowspan="2"> 保險公司 </th> <th data-options="field:'ProductShow',align:'center'" rowspan="2"> 產品類型 </th> <th data-options="field:'GetMoney',align:'center'" rowspan="2"> 保費 </th> <th data-options="field:'PayeeName',align:'center', formatter: MoneyFormatter " rowspan="2"> 收款方 </th> <th data-options="field:'ProductShow',align:'center'" rowspan="2"> 產品類型 </th> <th colspan="5"> 狀態 </th> <th data-options="field:'Id',align:'center',formatter: viewC" rowspan="2"> 操作 </th> </tr> <tr> <th data-options="field:'OutStateName',align:'center', formatter: OutStateFormatter "> 出單狀態 </th> <th data-options="field:'ReceiveStateName',align:'center', formatter: ReceiveStateFormatter "> 收款狀態 </th> <th data-options="field:'PayStateName',align:'center', formatter: PayStateFormatter"> 付款狀態 </th> <th data-options="field:'SendStateName',align:'center', formatter: SendStateFormatter "> 寄送狀態 </th> <th data-options="field:'ReceStateName',align:'center', formatter: ReceStateFormatter"> 簽收狀態 </th> </tr> </thead> </table>
②開始javascript,補充剩余的屬性
$('#dg').datagrid({ url: getUrl(), method: 'post', fitColumns: true, pagination: isPage, rownumbers: true, singleSelect: true, nowrap: false, pageList: [15, 30, 45, 60] });
當然你也可以寫在 上面的table中
<table class="easyui-datagrid" style="width:400px;height:250px"
data-options="url:'datagrid_data.json',fitColumns:true,singleSelect:true">
效果圖:
我是茗洋芳竹,歡迎加群 :193247142 (WEB豐富資源群)