• easyUI使用datagrid-detailview.js实现二级列表嵌套


    本文为博主原创,转载请注明:

    在easyUI中使用datagrid-detailview.js可快速实现二级折叠列表,示例如下:

    注意事项:

      原本在谷歌浏览器进行示例测试的,url请求对应的json文件,效果一直显示不出来,换到谷歌和IE是可以正常显示的,

    解决方法可参考:http://www.cnblogs.com/shunzdd/p/5585990.html

    其中的请求url对应的json文件封装的数据格式如下:

    相关属性可参考该博客:https://www.cnblogs.com/cnjava/archive/2013/01/21/2869876.html

    附官网demo连接:http://www.jeasyui.net/extension/189.html

    {"total":28,"rows":[
        {"productid":"FI-SW-01","unitcost":10.00,"status":"P","listprice":16.50,"attr1":"Large","itemid":"EST-1"},
        {"productid":"K9-DL-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Spotted Adult Female","itemid":"EST-2"},
        {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Venomless","itemid":"EST-3"},
        {"productid":"RP-LI-02","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Green Adult","itemid":"EST-5"},
        {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":58.50,"attr1":"Tailless","itemid":"EST-6"},
        {"productid":"FL-DSH-01","unitcost":12.00,"status":"P","listprice":23.50,"attr1":"With tail","itemid":"EST-7"},
        {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":93.50,"attr1":"Adult Female","itemid":"EST-8"},
        {"productid":"FL-DLH-02","unitcost":12.00,"status":"P","listprice":93.50,"attr1":"Adult Male","itemid":"EST-9"},
        {"productid":"RP-SN-01","unitcost":12.00,"status":"P","listprice":18.50,"attr1":"Rattleless","itemid":"EST-4"},
        {"productid":"AV-CB-01","unitcost":92.00,"status":"P","listprice":193.50,"attr1":"Adult Male","itemid":"EST-10"}
    ]}
      1 <html>
      2 <head>
      3 
      4     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      5     <title>jQuery EasyUI</title>
      6     <link rel="stylesheet" type="text/css" href="easyui.css">
      7     <link rel="stylesheet" type="text/css" href="icon.css">
      8     <script type="text/javascript" src="jquery.min.js"></script>
      9     <script type="text/javascript" src="jquery.easyui.min.js"></script>
     10     <script type="text/javascript" src="datagrid-detailview.js"></script>
     11 </head>
     12 <body>
     13     <h2>Expand row in DataGrid to show subgrid</h2>
     14     <div class="demo-info" style="margin-bottom:10px">
     15         <div class="demo-tip icon-tip"> </div>
     16         <div>Click the expand button to expand row and view subgrid.</div>
     17     </div>
     18     
     19     <div id="dg" style="650px;height:250px"></div>
     20     <script type="text/javascript">
     21         $(function(){
     22             $('#dg').datagrid({
     23                 view: detailview,
     24                 url:'json2.json',
     25                 singleSelect:"true" ,
     26                 fitColumns:"true",
     27                 striped:true,
     28                 checkOnSelect:'true',
     29                 columns:[[
     30                         {field:'itemid',title:'Order ID',200},
     31                         {field:'productid',title:'Quantity',100,align:'right'},
     32                         {field:'unitcost',title:'Unit Price',100,align:'right'}
     33                     ]],
     34                 detailFormatter:function(index,row){
     35                     return '<div style="padding:2px"><table id="ddv-' + index + '"></table></div>';
     36                 },
     37                 onExpandRow: function(index,row){
     38                     $('#ddv-'+index).datagrid({
     39                         //url:'./javascript/jquery-easyui-1.5.1/datagrid-detaildata.json?itemid='+row.itemid',
     40                         url:'json2detail.json',
     41                         fitColumns:true,
     42                         singleSelect:true,
     43                         rownumbers:true,
     44                         loadMsg:'',
     45                         height:'auto',
     46                         columns:[[
     47                             {field:'orderid',title:'Order ID',200},
     48                             {field:'quantity',title:'Quantity',100,align:'right'},
     49                             {field:'unitprice',title:'Unit Price',100,align:'right'},
     50                             {field:'op',title:'操作',100,align:'right',formatter:formatOper}
     51                         ]],
     52                         detailFormatter:function(index2,row2){
     53                             console.log("----------------");
     54                             console.log(index2+"==========="+row2);
     55                             return '<div style="padding:2px"><table id="ddv2-' + index2 + '"></table></div>';
     56                         },
     57                         onExpandRow: function(index2,row2){
     58                             console.log("+++++++++++++++++++++");
     59                             console.log(index2+"==========="+row2);
     60                             var ddv2 = $(this).datagrid('getRowDetail',index2).find('#ddv2-'+index2);//严重注意喔
     61                             ddv2.datagrid({//?itemid='+row.itemid
     62                                 //url:'./javascript/jquery-easyui-1.5.1/datagrid-detaildata.json?itemid='+row.itemid',
     63                                 url:'json2detail.json',
     64                                 fitColumns:true,
     65                                 singleSelect:true,
     66                                 rownumbers:false,
     67                                 loadMsg:'',
     68                                 height:'300px',
     69                                 columns:[[
     70                                     {field:'orderid',title:'Order ID',200},
     71                                     {field:'quantity',title:'Quantity',100,align:'right'},
     72                                     {field:'unitprice',title:'Unit Price',100,align:'right'},
     73                                     {field:'op',title:'操作',100,align:'right',formatter:formatOper}
     74                                 ]],
     75                                 
     76                                 onResize:function(){
     77                                     $('#dg').datagrid('fixDetailRowHeight',index2);
     78                                 },
     79                                 onLoadSuccess:function(){
     80                                     $('#dg').datagrid("selectRow", index2)
     81                                     setTimeout(function(){
     82                                         $('#dg').datagrid('fixDetailRowHeight',index2);
     83                                     },0);
     84                                 }
     85                             });
     86                             $('#dg').datagrid('fixDetailRowHeight',index2);
     87                             ddv2.datagrid('fixDetailRowHeight',index2);
     88                             $('#dg').datagrid('fixDetailRowHeight',index);
     89                         },
     90                 
     91                         onResize:function(){
     92                             $('#dg').datagrid('fixDetailRowHeight',index);
     93                         },
     94                         onLoadSuccess:function(){
     95                             $('#dg').datagrid("selectRow", index)
     96                             setTimeout(function(){
     97                                 $('#dg').datagrid('fixDetailRowHeight',index);
     98                             },0);
     99                         }
    100                     });
    101                     $('#dg').datagrid('fixDetailRowHeight',index);
    102                 }
    103             });
    104         });
    105         function formatOper(val,row,index){  
    106             return '<a href="#" onclick="editUser('+index+')">修改</a>';  
    107         }  
    108         function editUser(index){
    109             alert("ddd");
    110         }
    111     </script>
    112     
    113 </body>
    114 </html>

    实现的效果如下(由于引用的css样式在浏览器没显示,效果如下图所示):

  • 相关阅读:
    Ubuntu,QT5连接MySQL
    QT添加程序图标及窗口图标
    动态库与静态库
    Windows Gdi & CDC和HDC的区别与转换
    MFC多线程各种线程用法 .
    MFC 使用控制台打印程序信息
    Windows程序员必须知道的字符编码和字符集
    MFC DestroyWindow、OnDestroy、OnClose 程序关闭相关
    Windows消息机制详解
    c c++ 宏定义中#, ##, #@的含义
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/10561518.html
Copyright © 2020-2023  润新知