easyui的datagrid 怎么实现Map的key作为列,value作为值进行显示

公司目前有个需求,就是生成类似旷工表的一个功能。

目前生成相应数据的逻辑已近写好了,在展示上有些问题。

因为要求是在前端选一个startDate和endDate,然后返回这个时间段的符合的数据,因为时间段是不固定的,所以我用了List<Map<String,String>>这个格式。

生成的数据是:

[
    {
    "empid": 19,
    "name": "AAA",
    "maps": [
    {
    "2017-08-01": "noAbs"
    },
    {
    "2017-08-02": "noAbs"
    },
    {
    "2017-08-03": "noAbs"
    },
    {
    "2017-08-04": "noAbs"
    },
    {
    "2017-08-05": "abs"
    },
    {
    "2017-08-06": "abs"
    },
    {
    "2017-08-07": "noAbs"
    },
    {
    "2017-08-08": "noAbs"
    },
    {
    "2017-08-09": "noAbs"
    },
    {
    "2017-08-10": "noAbs"
    },
    {
    "2017-08-11": "noAbs"
    },
    {
    "2017-08-12": "abs"
    },
    {
    "2017-08-13": "abs"
    },
    {
    "2017-08-14": "noAbs"
    },
    {
    "2017-08-15": "abs"
    },
    {
    "2017-08-16": "noAbs"
    },
    {
    "2017-08-17": "abs"
    },
    {
    "2017-08-18": "abs"
    }
]

现在是想拿到这个maps,然后把map的key作为datagrid的列,map的value作为值,动态的显示结果。

请问各位大佬有啥好的解决办法吗?感激不尽!

阅读 5.1k
3 个回答

利用 datagrid loadFilter 属性

返回要显示的过滤数据。该函数有一个参数 'data' ,表示原始数据。您可以把原始数据变成标准数据格式。该函数必须返回标准数据对象,含有 'total' 和 'rows' 属性。

举个栗子:

loadFilter:function(data){
    console.log(data); // 这是你加载到的原始数据,调试到console上方便查看
    var Obj = {};
    Obj.total = data.empid;
    Obj.rows = data.maps;  // 类似的取出(转换数据)
    return Obj;  // 再输出给控件加载
}

我记得返回的数据是有个过滤回调的 你把返回数据做下处理不就好了吗

新手上路,请多包涵

作者这个问题怎么解决的啊?能不能说一下你的思路啊?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题