关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、3102411850 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 9427|回复: 3

[代码生成器] 动态列如何加载

[复制链接]
发表于 2018-3-27 12:50:34 | 显示全部楼层 |阅读模式
求问,如何动态加载列?
我的想法是在加载之前调用方法,然后动态生成。之后再去加载数据。请问怎么实现呢?因为用的是自定义标签。不是很了解。无法获取id 。如何增加加载前调用的方法。loadBefore
发表于 2018-3-27 15:46:51 | 显示全部楼层
  • var options={};  
  • $(function(){  
  •     var myNj = 9;  
  •     //初始化  
  •     $("#disgrid").datagrid({  
  •         type: 'POST',  
  •         nowrap: false,  
  •         striped: true,  
  •         fit:true,  
  •         width:1024,  
  •         height:500,  
  •         url:'',  
  •         pageSize:30,  
  •         remoteSort: false,  
  •         pagination:true,  
  •         rownumbers:true,  
  •         singleSelect:true,  
  •         queryParams:{  
  •             nj:myNj,  
  •             unitType:1  
  •         }  
  •     });   
  •       
  •     fetchData(myNj);  
  • });  
  •   
  • function fetchData(nj) {  
  •     var s = "";  
  •     s = "[[";  
  •     s = s + "{field:'unitname',title:'单元',width:160},{field:'practicetime',title:'测试时间',width:160},{field:'userid',title:'userid',width:120,hidden:'true'},{field:'serial',title:'serial',width:120,hidden:'true'},{field:'unitid',title:'unitid',width:100,hidden:'true'},";  
  •       
  •     //lu todo 列的定义可从服务器获得  
  •     if (nj==9) {  
  •         s = s + "{field:'aipanel_text_exam',title:'短文朗读',width:80},{field:'aipanel_scene_exam',title:'情景对话',width:80},{field:'aipanel_oral_exam',title:'简短说话',width:80}";  
  •   
  •         //lu 加一个计算列  
  •         s = s + ",{field:'tatal_score',title:'总分',width:60,formatter:function(value,rec){return paraseIntValue(rec.aipanel_text_exam)+paraseIntValue(rec.aipanel_scene_exam)+paraseIntValue(rec.aipanel_oral_exam);}}";  
  •     }else if (nj==7||nj==8){  
  •       //....  
  •   }  
  •     s = s + "]]";  
  •     options={};  
  •     options.url = '/app/search.do';  
  •     options.queryParams = {  
  •         nj:nj,  
  •         unitType:1  
  •     };  
  •     options.columns = eval(s);  
  •     //lu 增加一列  
  •     options.columns[0].push(  
  •         {  
  •             field:'desc',title:'查看详情',width:60,  
  •             formatter:function(value,rec){  
  •                 return "<a href=\"javascript:showDescInfo(\'"+rec.serial+"\',\'"+rec.scene_score+"\',\'"+rec.total_score+"\');\">详情</a>";  
  •             }  
  •         }     
  •     );  
  •       
  •     $('#disgrid').datagrid(options);  
  •     $('#disgrid').datagrid('reload');     
  •       
  • }  

发表于 2018-3-27 15:47:20 | 显示全部楼层
可以参考下
 楼主| 发表于 2018-4-4 11:30:38 | 显示全部楼层
fly1206 发表于 2018-3-27 15:46
  • var options={};  
  • $(function(){  
  •     var myNj = 9;  

  • $('#techownReportList').datagrid({
            onBeforeLoad: function () {
                var m = $('#techownReportList').datagrid('options').queryParams;
                m.date_begin = '2011-11-11';
                m.date_end = '2018-10-10';
                $('#techownReportList').datagrid('reload');
            }
        });


    我这么写的  但不知道为什么会抛出异常。难道所有项都要重新写么 ?



    jquery-1.8.3.js:418 Uncaught RangeError: Maximum call stack size exceeded
        at Function.isFunction (jquery-1.8.3.js:418)
        at Function.each (jquery-1.8.3.js:584)
        at init.each (jquery-1.8.3.js:241)
        at Object.reload (jquery.easyui.min.1.3.2.js:8087)
        at init.$.fn.datagrid (jquery.easyui.min.1.3.2.js:7924)
        at HTMLTableElement.onBeforeLoad (techownAccountDetailsController.do?list:35)
        at _576 (jquery.easyui.min.1.3.2.js:7858)
        at HTMLTableElement.<anonymous> (jquery.easyui.min.1.3.2.js:8088)
        at Function.each (jquery-1.8.3.js:611)
        at init.each (jquery-1.8.3.js:241)
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表