jQuery Easyui datagrid editor为combobox时指定数据源实例

发布时间 - 2026-01-10 21:56:28    点击率:

当在datagrid行内部应用添加编辑操作时,引入combobox是非常方便的操作,我在引入combobox时对数据源这快做个总结,在做demo的过程中遇到个问题,就是当你选择了下拉框的值后点击保存,此时显示的是value值,而不是text值,这时使用格式化函数解决此问题。

var Address = [{ "value": "1", "text": "CHINA" }, { "value": "2", "text": "USA" }, { "value": "3", "text": "Koren" }];

function unitformatter(value, rowData, rowIndex) {

  if (value == 0) {

    return;

  }

 

  for (var i = 0; i < Address.length; i++) {

    if (Address[i].value == value) {

      return Address[i].text;

    }

  }

}

function GetTable() {

  var editRow = undefined;

  $("#Student_Table").datagrid({

    height: 300,

    width: 450,

    title: '学生表',

    collapsible: true,

    singleSelect: true,

    url: '/Home/StuList',

    idField: 'ID',

    columns: [[

     { field: 'ID', title: 'ID', width: 100 },

      { field: 'Name', title: '姓名', width: 100, editor: { type: 'text', options: { required: true } } },

      { field: 'Age', title: '年龄', width: 100, align: 'center', editor: { type: 'text', options: { required: true } } },

      { field: 'Address', title: '地址', width: 100, formatter: unitformatter, align: 'center', editor: { type: 'combobox', options: { data: Address, valueField: "value", textField: "text" } } }

    ]],

    toolbar: [{

      text: '添加', iconCls: 'icon-add', handler: function () {

        if (editRow != undefined) {

          $("#Student_Table").datagrid('endEdit', editRow);

        }

        if (editRow == undefined) {

          $("#Student_Table").datagrid('insertRow', {

            index: 0,

            row: {}

          });

          $("#Student_Table").datagrid('beginEdit', 0);

          editRow = 0;

        }

      }

    }, '-', {

      text: '保存', iconCls: 'icon-save', handler: function () {

        $("#Student_Table").datagrid('endEdit', editRow);

        //如果调用acceptChanges(),使用getChanges()则获取不到编辑和新增的数据。

        //使用JSON序列化datarow对象,发送到后台。

        var rows = $("#Student_Table").datagrid('getChanges');

        var rowstr = JSON.stringify(rows);

        $.post('/Home/Create', rowstr, function (data) {

        });

      }

    }, '-', {

      text: '撤销', iconCls: 'icon-redo', handler: function () {

        editRow = undefined;

        $("#Student_Table").datagrid('rejectChanges');

        $("#Student_Table").datagrid('unselectAll');

      }

    }, '-', {

      text: '删除', iconCls: 'icon-remove', handler: function () {

        var row = $("#Student_Table").datagrid('getSelections');

      }

    }, '-', {

      text: '修改', iconCls: 'icon-edit', handler: function () {

        var row = $("#Student_Table").datagrid('getSelected');

        if (row != null) {

          if (editRow != undefined) {

            $("#Student_Table").datagrid('endEdit', editRow);

          }

          if (editRow == undefined) {

            var index = $("#Student_Table").datagrid('getRowIndex', row);

            $("#Student_Table").datagrid('beginEdit', index);

            editRow = index;

            $("#Student_Table").datagrid('unselectAll');

          }

        } else {

        }

      }

    }, '-', {

      text: '上移', iconCls: 'icon-up', handler: function () {

        MoveUp();

      }

    }, '-', {

      text: '下移', iconCls: 'icon-down', handler: function () {

        MoveDown();

      }

    }],

    onAfterEdit: function (rowIndex, rowData, changes) {

      editRow = undefined;

    },

    onDblClickRow: function (rowIndex, rowData) {

      if (editRow != undefined) {

        $("#Student_Table").datagrid('endEdit', editRow);

      }

      if (editRow == undefined) {

        $("#Student_Table").datagrid('beginEdit', rowIndex);

        editRow = rowIndex;

      }

    },

    onClickRow: function (rowIndex, rowData) {

      if (editRow != undefined) {

        $("#Student_Table").datagrid('endEdit', editRow);

      } 

    }

  });

} 

效果图:

 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# datagrid绑定combobox  # easyui  # combobox绑定数据源  # combobox  # 绑定  # Jquery Easyui进度条组件Progress使用详解(8)  # 如何解决jQuery EasyUI 已打开Tab重新加载问题  # jQuery Easyui datagrid行内实现【添加】、【编辑】、【上移】、【下移】  # Jquery Easyui选项卡组件Tab使用详解(10)  # Jquery Easyui菜单组件Menu使用详解(15)  # Jquery Easyui自定义下拉框组件使用详解(21)  # Jquery Easyui搜索框组件SearchBox使用详解(19)  # jQuery Easyui 下拉树组件combotree  # jQuery Easyui datagrid连续发送两次请求问题  # 详解Jquery Easyui的验证扩展  # 的是  # 我在  # 当你  # 做个  # 发送到  # 大家多多  # 过程中  # 而不是  # 选择了  # 下拉框  # 序列化  # width  # GetTable  # editRow  # undefined  # height  # Student_Table  # title  # idField  # StuList 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 怎么用AI帮你设计一套个性化的手机App图标?  香港服务器网站卡顿?如何解决网络延迟与负载问题?  Laravel如何配置任务调度?(Cron Job示例)  Windows Hello人脸识别突然无法使用  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  如何快速重置建站主机并恢复默认配置?  Laravel任务队列怎么用_Laravel Queues异步处理任务提升应用性能  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  大型企业网站制作流程,做网站需要注册公司吗?  黑客入侵网站服务器的常见手法有哪些?  Laravel Seeder填充数据教程_Laravel模型工厂Factory使用  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  如何在阿里云虚拟主机上快速搭建个人网站?  网站制作免费,什么网站能看正片电影?  Laravel如何使用Collections进行数据处理?(实用方法示例)  Linux后台任务运行方法_nohup与&使用技巧【技巧】  详解Android中Activity的四大启动模式实验简述  在线教育网站制作平台,山西立德教育官网?  在Oracle关闭情况下如何修改spfile的参数  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  网站优化排名时,需要考虑哪些问题呢?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何快速选择适合个人网站的云服务器配置?  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  Laravel怎么使用artisan命令缓存配置和视图  谷歌浏览器如何更改浏览器主题 Google Chrome主题设置教程  HTML 中动态设置元素 name 属性的正确语法详解  java获取注册ip实例  Linux系统命令中screen命令详解  PythonWeb开发入门教程_Flask快速构建Web应用  如何快速搭建个人网站并优化SEO?  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  如何在万网自助建站平台快速创建网站?  如何选择可靠的免备案建站服务器?  清除minerd进程的简单方法  如何解决hover在ie6中的兼容性问题  Laravel的.env文件有什么用_Laravel环境变量配置与管理详解  如何用美橙互联一键搭建多站合一网站?  免费网站制作appp,免费制作app哪个平台好?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何快速上传自定义模板至建站之星?  如何在宝塔面板中修改默认建站目录?  网站建设整体流程解析,建站其实很容易!  js实现点击每个li节点,都弹出其文本值及修改