您的位置:首页 > 产品设计 > UI/UE

easyui datagrid combobox 选择后显示valueField 而不是 textValue解决方法

2013-11-09 16:53 651 查看
前台:easyui,jquery1.3,html

后台:thinkphp,php

最终效果:



这次做项目的时候突然遇到一个非常棘手的问题,好好的使用的easyui的datagrid控件突然出现异常,特别是在对某些单元格进行编辑时并且编辑是使用combobox控件,此时会出现异常情况,选择过选项后本来该出现的是textValue的值,结果却总是出现valueField的值。查阅资料的过程中发现处理这个问题的非常少,一下是自己的一些解决方案。

datagrid 的部分代码如下:

{field:'s_id',title:'套餐',width:80,

formatter:function(value,rowData,rowIndex){

if(rowData.info!='-4'){

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

if(suit_id[i].s_id==value){

return suit_id[i].s_name;

}

}

}else{

return value;

}

},

editor:{

type:'combobox',

options:{

//url:APP+'/Broadband/suitComboInfo', //传统的写法

valueField:'s_id',

textField:'s_name',


data:suit_id //更改之后的写法

//value:1,

//validType:"comboOnlySelectId['suit_id','s_name',0]"

},

required:true

}

},

获取数据源的代码段:

window.suit_id = synchroAjaxByUrl(APP+'/Broadband/suitComboInfo');





//这是一段使用ajax同步获得数据的代码获取

function synchroAjaxByUrl(url){

var temp;

$.ajax({

url:url,

type:"get",

async:false,

dataType:"json",

success:function(data){

temp = data;

}

});

return temp;

}

通过提前获取到数据源然后在datagrid 要编辑的字段中将传统url:url获取数据源的方法变为data:data这种方式。就可以这种错误的发生。这种方式倒是有点类似与Extjs的那种写法,先得到数据源,哪里用到就在那里引用数据源,不知道问题是否表述的清除,希望可以帮得到大家。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐