首页 > 分享 > jquery easyui中datagrid 中的动态接受后台传的数据

jquery easyui中datagrid 中的动态接受后台传的数据

最新推荐文章于 2022-08-02 10:06:18 发布

若未 于 2018-03-02 15:30:23 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

摘要: 在开发中遇到一个问题,就是从后台传过的数据,字段数量和数据是不固定的,所以要对datagrid 方法进行改进

1.前台返回数据

controller 方法要加上@ResponseBody

这里的 list 是数据集合 ele 是字段集合

2.js接受数据

$.ajax({
            type: "post",
            url: $("#baseUrl").val()+"/query/queryTab",
            data: JSON.stringify(data),
            success : function(data) {
                 //加载数据
                if(eval(data) == ""){
                }else{
                    //调列表显示
                    list(eval(data.list),data.ele)
                }
            },
            error : function() {
                alert('查询名称异常');
            }
        });

3.dg方法中

//查询结果列表
function list(data,ele){
    $('#dg').datagrid({    
        //title:"详细信息",
        rownumbers:true,
        singleSelect:true,
        pagination:true,
        pageSize:20,
        loadMsg:"数据加载中...",
        width:'auto',
        height:'auto',
        left:"100px",
        toolbar:"#tb",
        columns:getColumns(ele), //列名
        loadFilter:pagerFilter  //分页                        
    }).datagrid('loadData',  getDataAll(data,ele));
}
function fixWidthTable(percent){  
     return getWidth(0.8) * percent;  
 }

function getWidth(percent){  
    return $(window).width() * percent;  

//数据
function getDataAll(data,ele){    
    var rows = [];
    for(var i=0; i<data.length; i++){
        var ff="{" ;
        for(var n=0; n<ele.length; n++){

                        if(n==ele.length-1){
                var name =ele[n]
                var val = eval("data[i]."+name)
                ff = ff+"""+ name+""";
                ff=ff+":"
                ff = ff+val
            }else{
                var name =ele[n]
                var val = eval("data[i]."+name)
                ff = ff+"""+ name+""";
                ff=ff+":"
                ff = ff+val
                ff = ff+","
            }
        }
        ff =ff +"}";
        var oj = JSON.parse(ff)
        rows.push(
                oj
        );
    }
    return rows;
}

//列名
function getColumns(ele){
    var s = "";  
    s = "[["; 
    var width = 1/ele.length 
    for(var i=0; i<ele.length; i++){

                if(i==ele.length-1){
            s=s+"{field:'"+ele[i]+"',title:'"+ele[i]+"',width:fixWidthTable("+width+"),halign: 'center',align:'center',formatter: "
             +   "function(value,row,index){"
             +   "      return '<span >'+ value+'</span>';"
             +"  } }";
        }else{
            s=s+"{field:'"+ele[i]+"',title:'"+ele[i]+"',width:fixWidthTable("+width+"),halign: 'center',align:'center',formatter: "
            +   "function(value,row,index){"
            +   "      return '<span >'+ value+'</span>';"
            +"  } },";
        }
    }
    s = s + "]]";  
    return eval(s);
}

//分页
function pagerFilter(data){

     if (typeof data.length == 'number' && typeof data.splice == 'function'){    
         data = {
             total: data.length,
             rows: data
         }
     }
     var dg = $(this);
     var opts = dg.datagrid('options');
     var pager = dg.datagrid('getPager');
     pager.pagination({
         pageList: [20,40,60],//[10,20,50,100]选择每页显示的记录数的下拉框的值。
         onRefresh:function(){search()},
         onSelectPage:function(pageNum, pageSize){
             opts.pageNumber = pageNum;
             opts.pageSize = pageSize;
             pager.pagination('refresh',{
                 pageNumber:pageNum,
                 pageSize:pageSize
             });
             dg.datagrid('loadData',data);
         }
     });
     if (!data.originalRows){
         data.originalRows = (data.rows);
     }
     var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
     var end = start + parseInt(opts.pageSize);
     data.rows = (data.originalRows.slice(start, end));
     return data;
}
 

写的不好 各位提意见

相关知识

jquery easyui中datagrid 中的动态接受后台传的数据
毕业论文
tp5.1 => 预约装车系统
JSP基于SSM宠物领养宠粮购买网站毕业源码案例设计.zip资源
宠物管理系统开发教程与源码下载
00
jquery实现a标签跳转(href=“index.html”)
jQuery Mobile (四) 跳转动画效果
E宠物商城源码ECSHOP最新,PHP时尚温馨的宠物类商城源码,PHP美化后台商城响应式
一种真实环境中的鸟类鸣声自动识别系统

网址: jquery easyui中datagrid 中的动态接受后台传的数据 https://m.mcbbbk.com/newsview852635.html

所属分类:萌宠日常
上一篇: 细针穿刺抽吸
下一篇: 问道宠物心法解析 宠物心法最佳搭