jQuery MiniUI

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

miniui动态列设置问题 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2016-7-26 17:56:43 |只看该作者 |倒序浏览
我想自己设置动态列,但是grid.setColumns()方法和grid.set({columns: column})并没有起作用。求帮忙解决。

Rank: 8Rank: 8

沙发
发表于 2016-7-27 09:27:59 |只看该作者

Rank: 1

板凳
发表于 2016-7-27 10:46:51 |只看该作者
felt 发表于 2016-7-27 09:27
http://www.miniui.com/demo/#src=datagrid/setcolumns.html
参考示例

因为我的那个列的信息是自己通过后台获取拼接成的字符串。整体代码如下:
<div class="mini-fit">
  <div id="datagrid1" class="mini-datagrid" style="width:100%;height: 100%;"
       url="${pageContext.request.contextPath}/${ moduleName}/getData"  idField="qryId"
       allowResize="true" pageSize="10"
       allowCellEdit="true" allowCellSelect="true" multiSelect="true"
       editNextOnEnterKey="true"  editNextRowCell="true"
       onselectionchanged="selectionChanged"
       contextMenu="#gridMenu"
          >
  </div>
</div>

<script type="text/javascript">

  mini.parse();
  var grid = mini.get("datagrid1");

  var columns = '[{ type: "checkcolumn",width:25 },{ type: "indexcolumn",width:30,headerAlign:"center",header:"序号"}';

  //获取需要显示的列
  app.get(context_ + "/admin/manager/defaultquery/getShowColumn",{userId:"123456789"},function(data) {
    data = $.parseJSON(data);
    var msg = $.parseJSON(data.msg);
    $.each(msg,function(index,item){
      var temp = ',{field:"'+item+'",width:120,headerAlign:"center", allowSort:true, header:"' +item+'"}';
      columns = columns+temp;
    });
    columns = columns+']';
    grid.set({columns:columns});
    grid.setColumns(columns);
  });

拼接出来的columns的json如下:
[{ type: "checkcolumn",width:25 },{ type: "indexcolumn",width:30,headerAlign:"center",header:"序号"},{field:"CLASS_ID",width:120,headerAlign:"center", allowSort:true, header:"CLASS_ID"},{field:"QRY_ID",width:120,headerAlign:"center", allowSort:true, header:"QRY_ID"},{field:"QRY_NAME",width:120,headerAlign:"center", allowSort:true, header:"QRY_NAME"},{field:"QS_TYPE",width:120,headerAlign:"center", allowSort:true, header:"QS_TYPE"},{field:"SET_TYPE",width:120,headerAlign:"center", allowSort:true, header:"SET_TYPE"},{field:"CREATE_USER",width:120,headerAlign:"center", allowSort:true, header:"CREATE_USER"}]
但是页面上表头信息并不显示,也没有报错。

Rank: 1

地板
发表于 2016-7-27 11:08:43 |只看该作者
rxin 发表于 2016-7-27 10:46
因为我的那个列的信息是自己通过后台获取拼接成的字符串。整体代码如下:

  

谢谢。已经解决。加上grid.set({columns:mini.decode(columns)});就可以了

Rank: 1

5#
发表于 2016-7-27 11:24:06 |只看该作者
rxin 发表于 2016-7-27 11:08
谢谢。已经解决。加上grid.set({columns:mini.decode(columns)});就可以了

我想问下,能不能为表头加按钮图标之类的。如果可以,怎么添加的额

Rank: 8Rank: 8

6#
发表于 2016-7-27 11:28:25 |只看该作者
rxin 发表于 2016-7-27 11:24
我想问下,能不能为表头加按钮图标之类的。如果可以,怎么添加的额

可以放html元素
<div field="xx" width="200" >111111<a class="icon-add" style="width:16px;height:16px;display:inline-block"></a>
  </div>

Rank: 1

7#
发表于 2016-7-27 11:40:57 |只看该作者
felt 发表于 2016-7-27 11:28
可以放html元素
111111

我想插入自己拼接的json字符串里面。比如在下面的表头信息中插入。请问下,该怎么做的额
[{ type: "checkcolumn",width:25 },{ type: "indexcolumn",width:30,headerAlign:"center",header:"序号"},{field:"CLASS_ID",width:120,headerAlign:"center", allowSort:true, header:"CLASS_ID"}
...
]

Rank: 8Rank: 8

8#
发表于 2016-7-27 13:01:51 |只看该作者
rxin 发表于 2016-7-27 11:40
我想插入自己拼接的json字符串里面。比如在下面的表头信息中插入。请问下,该怎么做的额
[{ type: "check ...

header:"aaaa<a...........></a>

Rank: 1

9#
发表于 2016-7-27 13:59:43 |只看该作者
felt 发表于 2016-7-27 13:01
header:"aaaa

请教下,那个拼接问题的额。
var columns = '[{ type: "indexcolumn",width:30,headerAlign:"center",header:"序号<a >增</a>"}';
这样是可以的,但是我想为那个增添加onclick事件(onclick="addColumn()"),该怎么拼接进去的。

Rank: 8Rank: 8

10#
发表于 2016-7-27 14:12:27 |只看该作者
rxin 发表于 2016-7-27 13:59
请教下,那个拼接问题的额。
var columns = '[{ type: "indexcolumn",width:30,headerAlign:"center",hea ...

序号<a onclick='addColumn()'>增</a>
你在html里面怎么放,这里拼进去就是了

Archiver|普加软件

GMT+8, 2025-7-10 17:29 , Processed in 1.052863 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部