easyui扩展行默认展开 以及 去除滚动条

Posted yigexiaojiangshi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easyui扩展行默认展开 以及 去除滚动条相关的知识,希望对你有一定的参考价值。

 问题背景:
在做打印页面的时候,要求有详细的默认展开显示。 
 
遇到的问题:
1)在用扩展行的时候,grid的所有行都添加了展开收起的图标,(第二行没有明细)如下技术分享图片
技术分享图片

 

 2)默认展示有详细行的时候,内容被滚动条遮挡(影响打印)技术分享图片
技术分享图片

 

 
 3) 解决方法:在easyui扩展行的 onLoadSuccess 函数里进行处理 
  1 $list.datagrid({
  2     view: detailview,
  3     onLoadSuccess: function (data) {
  4 
  5         //没有详细的行 去掉 展示收起图标
  6         for (var i = 0; i < data.rows.length; i++) {
  7             if (data.rows[i].FeeCategoryID != 1) {
  8                 var expander = $(‘body‘).find(‘tr.datagrid-row[datagrid-row-index=‘ + i + ‘]‘);
  9                 expander.children(‘[field="_expander"]‘).html(‘‘);
 10             }
 11         }
 12 
 13         //默认展开所有详细行
 14         var row = $list.datagrid("getRows");
 15         for (var r = 0; r < row.length; r++) {
 16             $list.datagrid("expandRow", r);
 17         }
 18 
 19         //去除滚动条
 20         var $ScrH1 = $(‘.datagrid-view1 .datagrid-body‘);
 21         var $ScrH2 = $(‘.datagrid-view2 .datagrid-body‘);
 22         $ScrH1.height($ScrH2[0].scrollHeight);
 23         $ScrH2.height($ScrH2[0].scrollHeight);
 24         $(‘.datagrid-view‘).height($(‘.datagrid-view2‘).height());
 25     },
 26     detailFormatter: function (index, row) {
 27         if (row.FeeCategoryID == 1) {
 28             return ‘<div class="datail-item-wrap" style="padding:5px 0"></div>‘;
 29         }
 30     },
 31     onExpandRow: function (index, row) {
 32         var feeID = row.FeeCategoryID;
 33         var feeType = feeTypes.first(function (item) { return item.ID == feeID; });
 34         if (feeID == 1) {
 35             var wrap = $(this).datagrid(‘getRowDetail‘, index).find(‘div.datail-item-wrap‘);
 36             var $cotent = ‘‘;
 37             var feeDetail = row.ExpenseClaimFeeItems;
 38             var detailData = JSON.parse(JSON.stringify(feeType.Feecategoryitem));
 39             var dataLen = detailData.length;
 40             for (var ind = 0; ind < dataLen; ind++) {
 41                 $cotent += ‘<li class="datail-item"><span>‘ + detailData[ind].FeeTypeCNName + ‘:</span><span>‘ + toDoubleThousands(feeDetail[ind].AmountWithTax) + ‘</span></li>‘;
 42             }
 43             $cotent = ‘<ul>‘ + $cotent + ‘</ul>‘;
 44         } else {
 45             return
 46         }
 47         wrap.panel({
 48             border: false,
 49             cache: false,
 50             fit: true,
 51             content: $cotent,
 52             onLoad: function () {
 53                 $list.datagrid(‘fixDetailRowHeight‘, index);
 54             }
 55         });
 56         $list.datagrid(‘fixDetailRowHeight‘, index);
 57     }
 58 });$list.datagrid({
 59     view: detailview,
 60     onLoadSuccess: function (data) {
 61 
 62         //没有详细的行 去掉 展示收起图标
 63         for (var i = 0; i < data.rows.length; i++) {
 64             if (data.rows[i].FeeCategoryID != 1) {
 65                 var expander = $(‘body‘).find(‘tr.datagrid-row[datagrid-row-index=‘ + i + ‘]‘);
 66                 expander.children(‘[field="_expander"]‘).html(‘‘);
 67             }
 68         }
 69 
 70         //默认展开所有详细行
 71         var row = $list.datagrid("getRows");
 72         for (var r = 0; r < row.length; r++) {
 73             $list.datagrid("expandRow", r);
 74         }
 75 
 76         //去除滚动条
 77         var $ScrH1 = $(‘.datagrid-view1 .datagrid-body‘);
 78         var $ScrH2 = $(‘.datagrid-view2 .datagrid-body‘);
 79         $ScrH1.height($ScrH2[0].scrollHeight);
 80         $ScrH2.height($ScrH2[0].scrollHeight);
 81         $(‘.datagrid-view‘).height($(‘.datagrid-view2‘).height());
 82     },
 83     detailFormatter: function (index, row) {
 84         if (row.FeeCategoryID == 1) {
 85             return ‘<div class="datail-item-wrap" style="padding:5px 0"></div>‘;
 86         }
 87     },
 88     onExpandRow: function (index, row) {
 89         var feeID = row.FeeCategoryID;
 90         var feeType = feeTypes.first(function (item) { return item.ID == feeID; });
 91         if (feeID == 1) {
 92             var wrap = $(this).datagrid(‘getRowDetail‘, index).find(‘div.datail-item-wrap‘);
 93             var $cotent = ‘‘;
 94             var feeDetail = row.ExpenseClaimFeeItems;
 95             var detailData = JSON.parse(JSON.stringify(feeType.Feecategoryitem));
 96             var dataLen = detailData.length;
 97             for (var ind = 0; ind < dataLen; ind++) {
 98                 $cotent += ‘<li class="datail-item"><span>‘ + detailData[ind].FeeTypeCNName + ‘:</span><span>‘ + toDoubleThousands(feeDetail[ind].AmountWithTax) + ‘</span></li>‘;
 99             }
100             $cotent = ‘<ul>‘ + $cotent + ‘</ul>‘;
101         } else {
102             return
103         }
104         wrap.panel({
105             border: false,
106             cache: false,
107             fit: true,
108             content: $cotent,
109             onLoad: function () {
110                 $list.datagrid(‘fixDetailRowHeight‘, index);
111             }
112         });
113         $list.datagrid(‘fixDetailRowHeight‘, index);
114     }
115 });

 

    

以上是关于easyui扩展行默认展开 以及 去除滚动条的主要内容,如果未能解决你的问题,请参考以下文章

easyui内的弹窗dialog不会随滚动条拖动而居中 这个怎么解决

easyui的pagination分页可以不用datagrid吗

overflow妙用--去除默认滚动条,内容仍可滚动

easyui-layout没有下拉滚动条是怎么回事

easyui treegrid 如何默认节点展开第一级?

自动调整 textarea 最大 5 行限制,然后显示滚动条