snaif_lx 2015-09-05 08:17 采纳率: 80%
浏览 2113
已采纳

easyui dategrid 显示的值和编辑的值类型不同怎么办?

//---民族
         {
             field: 'NMK07', title: '民族', width: 100, sortable: true,
             editor: {type: 'combobox', options: {
                 required: true,
                 //formatter: unitformatter,
                 url: '/handler/dict.ashx?flag=tree&t=Nation', parentField: 'pid',
                 textFiled: 'text',
                 valueField: 'id',
                 method: 'get',
                 lines: true,
                 editable: false,
                 panelHeight: 130,
                 panelMaxWidth: 200
             }
             }
         },
         //----------------

                    url获取到的是json格式,内容如下:
                    [{"id":0,"pid":-1,"text":"请选择"},{"id":3,"pid":-1,"text":"123"},{"id":2,"pid":-1,"text":"民族1"}]

情况说明:

数据库中NMK07字段为int字段,用于存储对应民族表的ID,这样就导致在dategrid的时候显示NMK07直接显示的是ID值,而不是对应民族的名称
如果后台生成json时就获取成名族名称的话,在编辑列数据时,combobox里又无法获取得到民族的ID
请问,这样的情况如何处理?
datagrid默认显示时需要民族的名称,编辑时又需要的是民族的ID,同一个列的情况下,该怎么办呢?
  • 写回答

5条回答 默认 最新

  • Go 旅城通票 2015-09-05 09:46
    关注

    你用一个script标签加载/handler/dict.ashx?flag=tree&t=Nation这个页面在页面上生成名族的json数组对象,然后你的editor不需要指定url了,直接使用data配置指向这个数据即可,可以大大提高效率,不需要每次用ajax加载

    如你ashx原来输出[{}...]这个格式的数据,变成var arrMZ=[{}....]这种,然后用script加载你的这个动态页

     <script src="/handler/dict.ashx?flag=tree&t=Nation"></script>
    

    ,这样arrMZ就是存储你名族的json对象数组了

      editor: {type: 'combobox', options: {
                     required: true,
                     //formatter: unitformatter,
                     //url: '/handler/dict.ashx?flag=tree&t=Nation', parentField: 'pid',
                                    data:arrMZ//////这样配置本地数据就可以了
    

    然后给datagrid配置formatter,遍历arrMZ对比传入的value返回对应的显示值

       {
                 field: 'NMK07', title: '民族', width: 100, sortable: true,
                            formatter:function(v){
                            for(var i=0;i<arrMZ.length;i++){
                               if(arrMZ[i]['id']==v)return arrMZ[i]['text']
                            }
                            }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog