应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

Easyui datagrid 编辑结束时combobox显示value而不显示text

4955人阅读 2014/3/28 15:39 总访问:5182856 评论:0 收藏:0 手机
分类: 前端

在调用datgrid编辑结束时

$(‘#dg’).datagrid(‘endEdit’, editIndex);

datagrid的combobox会显示出value,

这是因为easyui在我们编辑结束时为了方便使用更改的值而记录下了combobox的value而不是text

  1. var inserted = $("#dg").datagrid('getChanges', "inserted");
  2. var deleted = $("#dg").datagrid('getChanges', "deleted");
  3. var updated = $("#dg").datagrid('getChanges', "updated");

获取到更改在传会后台使用倒是方便,但是显示出来是value很不舒服,

解决方法一(不推荐):

这是我们可以使用formatter来格式化输出

因为无论是加载数据与编辑结束时datagrid都会执行formatter函数,所以我们可以用它来输出我们想要的内容,

而且combobox的数据采用data方式而不直接使用url

  1. <th data-options="field:'UserLevelId',width:100,
  2. formatter:fmLevelAJ,
  3. editor:{
  4. type:'combobox',
  5. options:{
  6. textField:'UserLevelName',
  7. valueField:'UserLevelId',
  8. data:GetLevelDTAJ(),
  9. editable:false
  10. }
  11. }">会员等级</th>
  1. var comboboxData = "";
  2. function GetLevelDTAJ()
  3. {
  4. $.ajax({
  5. url: "xx",
  6. type: 'get',
  7. async: false,//此处必须是同步
  8. dataTye: 'json',
  9. success: function (data) {
  10. comboboxData = data;
  11. }
  12. })
  13. return comboboxData;
  14. }
  15. function fmLevelAJ(value, row) {
  16. console.log(comboboxData);
  17. for (var i = 0; i < comboboxData.length; i++) {
  18. if (comboboxData[i].UserLevelId == value) {
  19. return comboboxData[i].UserLevelName;
  20. }
  21. }
  22. return row.UserLevelId;
  23. }

原来的写法:

  1. <th data-options="field:'UserLevelId',width:100,
  2. formatter:function fmLevelAJ(value, row) {
  3. return row.UserLevelId;
  4. },
  5. editor:{
  6. type:'combobox',
  7. options:{
  8. textField:'UserLevelName',
  9. valueField:'UserLevelId',
  10. url:'xx',
  11. editable:false
  12. }
  13. }">会员等级</th>

解决方法二:

后台返回一个值,当然不好解决,但是可以在后台查询出键值对,显示用值,返回用键

1:必须要把键值都查询出来field写键,formatter写值

  1. <th data-options="field:'ID',width:120, --键用于返回回台
  2. formatter:function(value,row){
  3. return row.Company; --值用于显示
  4. },
  5. editor:{
  6. type:'combobox',
  7. options:{
  8. valueField:'ID',
  9. textField:'Company',
  10. url:'/Membership/GetCompanyList',
  11. editable:false
  12. }
  13. }">公司名称</th>

一般这样就可以了,但是有时间需要编辑多条的时候需要进行下第二条

2:在编辑结束前,得到对应的Combobox赋值一次

  1. var ed = $('#dg').datagrid('getEditor', { index: editIndex, field: 'ID' }); //editIndex编辑时记录下的行号
  2. if (ed != null) {
  3. var Company = $(ed.target).combobox('getText');
  4. $('#dg').datagrid('getRows')[editIndex]['Company'] = Company;
  5. }
  6. $('#dg').datagrid('endEdit', editIndex);

完整一点的代码

  1. function endEditing() {
  2. if (editIndex == undefined) { return true }
  3. if ($('#dg').datagrid('validateRow', editIndex)) {
  4. var ed = $('#dg').datagrid('getEditor', { index: editIndex, field: 'ID' }); //editIndex编辑时记录下的行号
  5. if (ed != null) {
  6. var Company = $(ed.target).combobox('getText');
  7. $('#dg').datagrid('getRows')[editIndex]['Company'] = Company;
  8. }
  9. $('#dg').datagrid('endEdit', editIndex);
  10. editIndex = undefined;
  11. return true;
  12. }
  13. else {return false;}
  14. }

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

combobox绑定

前言实用小功能combobox绑定一个value//定义一个datatable实例化出每一行 DataTablesourcettable=newDataTable(); source...

jQuery右击自定义显示菜单+自定义换肤

结合右击显示菜单来做的效果图:代码:&lt;!doctypehtml&gt; &lt;html&gt; &lt;head&gt; &lt;metacharset=&quot;gbk&quo...

Layui水平二级菜单时长不显示的问题

调用一下初始化方法Init就可以解决了

使用select2实现下拉框中显示图片

使用select2插件需要引用select2.min.js、select2.min.css文件1、CDN引用方式:&lt;link href=&quot;https://cdnjs.cloudfl...

c winform listview显示数据

这样一个小小的问题坑了我好久啊....................好多年没有用winfrom了,居然因为一个listview显示数据问题坑了那么那...

highchart中x坐标字符串无法显示问题

本来准备使用一个ip地址来作为x坐标的,但是一直显示不出来,x坐标换成数字又可以了。然后就想着x坐标的设置也从后台动态的...

Web前段框架技术之全选,全不选,反选并显示出来

我们用到&lt;input&gt;标签,再每一个&lt;input&gt;标签取一个相同的name值。如下图:开始我们的骚操作,用Web前段框架技术...

ASP.NET MVC + WebUploader+BootStrap实现文件上传进度条显示

引入需要的资源文件:&lt;scriptsrc=&quot;~/Content/jquery-1.9.1.min.js&quot;&gt;&lt;/script&gt; &lt;linkhref=&quot;...

mui轮播图与显示小圆点

html:&lt;divclass=&quot;mui-slider&quot;&gt; &lt;divclass=&quot;mui-slider-groupmui-slider-loop&quot;&gt; &lt;...

微信二维码显示和测试白名单

HttpClienthttpClient=newHttpClient(); vartempobj=new { action_name=&quot;QR_CARD&quot;, action_info=new { c...

bootstrap实现一个简单的图书显示

效果如下:代码:代码:&lt;!DOCTYPEhtml&gt; &lt;html&gt; &lt;head&gt; &lt;metacharset=&quot;utf-8&quot;/&gt; &lt...

Markdown转HTML的显示处理

数据库保存转化好的html格式,前台直接显示" class="reference-link">方法1 : 数据库保存转化好的html格式,前台直接显示m...

内容超出显示省略号文字超出出现省略号

单行的情况:overflow:hidden; text-overflow:ellipsis; white-space:nowrap;注意:可能要定宽才能起作用,如果没有起作...

表格td内容超出显示省略号

直接上代码 .wrap-td{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2;//指定行数 ove...

js文件输入中文,显示乱码

其实就是一个编码问题嘛。可以用记事本的方式打开js,然后另存为的时候格式选择uft-8就行了。当然这个具体格式要根据你网页...