easyui datagrid field配置一样formatter无效

  easyui datagrid的columns配置,如果存在2个field一样的配置,并且配置了不同的formatter返回不同内容,当生成datagrid内容时,datagrid获取列formatter返回内容只会生成一个field配置的formatter返回的内容,示例如下

    $("#dg").datagrid({
        title:'datagrid field出现相同值',
        columns: [[
            { title: 'column-1', field: 'filed1', formatter: function () { return 'data-1' } },
            { title: 'column-2', field: 'filed2', formatter: function () { return 'data-2' } },
            { title: 'column-3', field: 'filed1', formatter: function () { return 'data-3' } }]
        ],
        data: [[], [], [], []]
    });

1个回答

因为easyui datagrid获取formatter时是通过当前列明然后遍历columns数组对比里面的json的field配置值,对比成功就返回第一个出现的formatter,所以不会得到第三列的formatter,内容也就和第一列的一样了。

field配置不一样的,哪怕是数据中不存在的json键名称也是可以的。

$("#dg").datagrid({
title:'datagrid field配置不同列名称才能获取到对应的formatter',
columns: [[
{ title: 'column-1', field: 'filed1', formatter: function () { return 'data-1' } },
{ title: 'column-2', field: 'filed2', formatter: function () { return 'data-2' } },
{ title: 'column-3', field: 'xxxx', formatter: function () { return 'data-3' } }]
],
data: [[], [], [], []]
});
参考:http://www.w3dev.cn/article/20161018/easyui-datagrid-field-value-same-formatter-return-first-one.aspx

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问