jQuery MiniUI

 找回密码
 立即注册
查看: 4155|回复: 7
打印 上一主题 下一主题

datagrid的header菜单下拉图标可以不隐藏吗 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2019-12-11 17:28:58 |只看该作者 |倒序浏览


如图,这个下拉菜单需要鼠标放到那个header上才会显示,能不能设置成一直显示,不需要鼠标放上去才显示?
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2019-12-12 09:20:58 |只看该作者
可以修改样式.mini-grid-column-trigger
    {
        display:block;
        }

Rank: 3Rank: 3

板凳
发表于 2019-12-12 11:48:30 |只看该作者
felt 发表于 2019-12-12 09:20
可以修改样式.mini-grid-column-trigger
    {
        display:block;

好的,谢谢

Rank: 3Rank: 3

地板
发表于 2019-12-14 15:43:31 |只看该作者
felt 发表于 2019-12-12 09:20
可以修改样式.mini-grid-column-trigger
    {
        display:block;

你好,还有一个问题,没有锁列时,表头是有下拉菜单的,加了锁列datagrid.frozenColumns(0,4)后,表头的下拉菜单也不见了,这是什么情况? 如图:
添加锁列后:

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

5#
发表于 2019-12-16 15:37:58 |只看该作者
jwf323594 发表于 2019-12-14 15:43
你好,还有一个问题,没有锁列时,表头是有下拉菜单的,加了锁列datagrid.frozenColumns(0,4)后,表头的下 ...

修改columnsMenu.js
_renderColumnTigger方法

var el = grid.getHeaderCellEl(column)
>>>>>改成
var el = grid.getHeaderCellEl(column)|| grid.getHeaderCellEl(column, 1);

Rank: 3Rank: 3

6#
发表于 2019-12-17 09:20:24 |只看该作者
本帖最后由 jwf323594 于 2019-12-17 09:22 编辑
felt 发表于 2019-12-16 15:37
修改columnsMenu.js
_renderColumnTigger方法

谢谢,但是这里又有一个问题,动态渲染的表头,加上 menu = new ColumnsMenu(datagrid) 方法,ColumnsMenu.js里面执行一次grid.on("update", function (e)  的方法,然后页面上点击查询后,重新动态渲染表头,这次ColumnsMenu.js里面grid.on("update", function (e)  的方法一下执行了两次,导致下拉菜单出现了两层,再点击查询,就会执行三次,这是哪里的问题?
如图:
然后选择企业,点击查询按钮后,表头变化后,grid.on("update", function (e)  的方法执行了2次


部分代码如下:
  1. <script>
  2.     mini.parse();
  3.     var datagrid = mini.get("datagrid");
  4.     var queryform = new mini.Form ("#queryForm");
  5.     var company = mini.get("companyId");
  6.     var menu;

  7.     var companyList=company.getData();
  8.     //getCompanyList();

  9.     query();  //查询按钮
  10.     function query() {
  11.         if (queryform.validate()){
  12.             var data = queryform.getData (true, false);
  13.             datagrid.load(data, null, showLoadErrorMessageBox);
  14.         }
  15.     }

  16.     datagrid.on("load",function(e){
  17.         datagrid.setColumns("");
  18.         //初始化固定不变的column
  19.         datagrid.set({
  20.             columns: [
  21.                 { type: "indexcolumn",width: 100,header: "检测因子",headerAlign: "center",align: "center"},
  22.                 { field: "companyId", width: 220, headerAlign: "center", header: "企业名称",align: "center"},
  23.                 { field: "monitorName", width: 140, headerAlign: "center", header: "采样地点",align: "center"},
  24.                 { field: "sampleDeepth", width: 140, headerAlign: "center", header: "采样深度",align: "center"},
  25.                 { field: "takeTime", width: 160, headerAlign: "center", header: "采样时间",align: "center"},
  26.                 { field: "sampleState", width: 120, headerAlign: "center", header: "样品状态",align: "center"},
  27.             ]
  28.         });
  29.         var url="";
  30.         if(company.getValue()==""){
  31.             url="${ctx}/commonFunction/factorList.do?factorType=6";
  32.         }else{
  33.             url="${ctx}/monitorData/getSoilFactorListByCom.do?companyId="+company.getValue();
  34.         }
  35.         var columns=datagrid.getColumns();
  36.         $.ajax({
  37.             url: url,
  38.             type: "post",
  39.             async: false,
  40.             success: function (text) {
  41.                 for(var i=0;i<text.length;i++){
  42.                     var addCell=
  43.                     {
  44.                         field:text[i].code+"_value",
  45.                         name:text[i].code+"_value",
  46.                         width: 120,
  47.                         headerAlign: "center",
  48.                         align: "center",
  49.                         allowSort: false,
  50.                         header: text[i].factorName + "<br>(mg/kg)"
  51.                     };

  52.                     var bCell=mini.decode(addCell);
  53.                     columns.insert(columns.length+1,bCell);
  54.                 }
  55.             }
  56.         });
  57.         datagrid.setColumns(columns);
  58.         menu = new ColumnsMenu(datagrid);
  59.         datagrid.frozenColumns(0,4);
  60.     });
复制代码




附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

7#
发表于 2019-12-17 10:58:12 |只看该作者
jwf323594 发表于 2019-12-17 09:20
谢谢,但是这里又有一个问题,动态渲染的表头,加上 menu = new ColumnsMenu(datagrid) 方法,ColumnsMenu ...

这个插件我们没考虑重新生成列的,你这里需要重新生成menu了。
  1. _renderColumnTriggers: function () {
  2.         var me = this,
  3.             grid = me.grid,
  4.             options = me.options,
  5.             columns = grid.getBottomColumns();

  6.         for (var i = 0, l = columns.length; i < l; i++) {
  7.             var column = columns[i];
  8.             // var el = grid.getHeaderCellEl(column);
  9.             var el = grid.getHeaderCellEl(column) || grid.getHeaderCellEl(column, 1);
  10.             if (!el) continue;
  11.             if (!column.field) continue;
  12.             var trigger = $(el.firstChild).find(".mini-grid-column-trigger");
  13.             if (trigger) {
  14.                 trigger.remove();
  15.             }

  16.             $(el.firstChild).append('<div class="mini-grid-column-trigger mini-icon mini-widget-header fa-sort-down" style="line-height:20px;"></div>');
  17.             me.menu = me.createMenu();
  18.         }
  19.     },
复制代码

Rank: 3Rank: 3

8#
发表于 2019-12-17 11:48:29 |只看该作者
dforce 发表于 2019-12-17 10:58
这个插件我们没考虑重新生成列的,你这里需要重新生成menu了。

好的,谢谢

Archiver|普加软件

GMT+8, 2024-11-27 15:34 , Processed in 1.049729 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部