jQuery MiniUI

标题: 关于datagrid动态生成列,datatype没效果的问题 [打印本页]

作者: zq200487731    时间: 2015-12-12 13:26:38     标题: 关于datagrid动态生成列,datatype没效果的问题

  1. fieldColumns += "{";
  2.                     fieldColumns += "field:'SALE_NO',width: 120," + 'headerAlign:"center",allowSort: true,' + 'align:"center",header:"订单编号"';
  3.                     fieldColumns += "},";
  4.                     fieldColumns += "{";
  5.                     fieldColumns += "field:'TOTAL',width: 120," + 'headerAlign:"center",allowSort: true,' + 'align:"right",currencyunit:"¥",datatype:"currency",header:"小计"';
  6.                     fieldColumns += "},";
  7.                     for (var i = 0; i < text.split(",").length; i++) {
  8.                         if (text.split(",")[i] != "") {
  9.                             fieldColumns += "{";
  10.                             fieldColumns += "field:'" + text.split(",")[i] + "',width: 120," + 'headerAlign:"center",currencyunit:"¥",datatype:"currency",allowSort: true,' + 'align:"right",header:"' + text.split(",")[i] + '"';
  11.                             fieldColumns += "},";
  12.                         }
  13.                     }
复制代码


代码中可以实现动态显示列,但是没有对显示的内容格式化
作者: zq200487731    时间: 2015-12-12 14:10:32

还有一个问题,就是当我这样动态生成列之后,如果我想再次查询数据库,这个时候列发生了变化,再动态生成列的时候。列不会发生变化,还是按照第一次生成的列显示
作者: felt    时间: 2015-12-14 09:34:45

zq200487731 发表于 2015-12-12 14:10
还有一个问题,就是当我这样动态生成列之后,如果我想再次查询数据库,这个时候列发生了变化,再动态生成列 ...

grid.setColumns(columns)动态创建列
不清楚你的操作,请提供详细的代码
作者: zq200487731    时间: 2015-12-14 09:56:08

felt 发表于 2015-12-14 09:34
grid.setColumns(columns)动态创建列
不清楚你的操作,请提供详细的代码
  1. mini.parse();
  2.         var grid = mini.get("datagrid1");
  3.         var fieldColumns = "";
  4.         var ACCOUNTING_COMPANY = mini.get("ACCOUNTING_COMPANY");
  5.         //grid.load();
  6.         //createGrid();
  7.         function Search()
  8.         {
  9.             grid.load({
  10.                 ACCOUNTING_COMPANY: ACCOUNTING_COMPANY.value
  11.             });
  12.             
  13.             createGrid();
  14.         }
  15.         function createGrid() {
  16.          //grid.setColumns("");
  17.             $.ajax({
  18.                 url: "../COST_ACCOUNTING/AjaxService.ashx?method=GetSuppliers_Item&CATE_NODE_ID="+<%=CATE_NODE_ID %>+"&ACCOUNTING_COMPANY="+ACCOUNTING_COMPANY.value+"",
  19.                 type: "post",
  20.                 success: function (text) {
  21.                     //alert(text.split(",").length);
  22.                     fieldColumns += "{";
  23.                     fieldColumns += "field:'SALE_NO',width: 120," + 'headerAlign:"center",allowSort: true,' + 'align:"center",header:"订单编号"';
  24.                     fieldColumns += "},";
  25.                     fieldColumns += "{";
  26.                     fieldColumns += "field:'TOTAL',width: 120," + 'headerAlign:"center",allowSort: true,' + 'align:"right",currencyunit:"¥",datatype:"currency",header:"小计"';
  27.                     fieldColumns += "},";
  28.                     for (var i = 0; i < text.split(",").length; i++) {
  29.                         if (text.split(",")[i] != "") {
  30.                             fieldColumns += "{";
  31.                             fieldColumns += "field:'" + text.split(",")[i] + "',width: 120," + 'headerAlign:"center",currencyunit:"¥",datatype:"currency",allowSort: true,' + 'align:"right",header:"' + text.split(",")[i] + '"';
  32.                             fieldColumns += "},";
  33.                         }
  34.                     }

  35.                     fieldColumns = fieldColumns.substring(0, fieldColumns.lastIndexOf(","));
  36.                     //alert(fieldColumns);
  37.                     var colums = eval('([' + fieldColumns + '])');
  38. //                    alert(colums);
  39.                     grid.setColumns(colums);
  40.                 },
  41.                 error: function (jqXHR, textStatus, errorThrown) {
  42.                     alert(jqXHR.responseText);
  43.                 }
  44.             });
  45.             //grid.load();
  46.         }
复制代码
代码是这么写的,现在的问题是当我改变搜索条件,返回的列也会不一样,但是再次动态创建列的时候,datagrid的列还是上次创建的列,并没有更新成最新获取的列

作者: felt    时间: 2015-12-14 11:58:04

zq200487731 发表于 2015-12-14 09:56
代码是这么写的,现在的问题是当我改变搜索条件,返回的列也会不一样,但是再次动态创建列的时候,datagr ...

请提供个简单页面包括数据,来重现你的问题




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2