Datagrid列字段Ajax字典表值转换 ##Datagrid列字段Ajax字典表值转换 针对一些业务表数据关联的字典表的字段信息,如果字段表数据比较大,在业务表保存了字典表数据的code,但是列表需要展示给用户另外一个text的字段,这种如果使用表关联的话效率比较低 下面我们采用ajax的方式在页面进行加载,异步加载字典表数据进行格式展示输出 (1)首先列表个需要显示一个固定的元素,带有固定标志的信息 例如: ``` formatter:function(value,rec,index){ var rtn = "<span name=\"ajaxDict\" dictionary=\"t_s_base_user,username,realname\" dictCondition=\"\" popup=\"false\" value=\""+value+"\"><img src='plug-in/easyui/themes/icons/loading.gif'/></span>"; return rtn; } ``` datagrid列表字段格式化一个span的元素,定义固定name值ajaxDict,后面会用到这个name值,来找到相同name值的对象获取对象的其他属性值,根据属性值进行ajax处理,得到结果替换span的text值,目前text的值展示的是一个加载gif图片 (2)编写通用处理js方法: ``` function loadAjaxDict(rowData){ $("body").find("span[name='ajaxDict']").each(function(i){ var $this = $(this); var dictionary = $this.attr('dictionary'); var dictCondition = $this.attr('dictCondition'); var popup = $this.attr('popup'); var value = $this.attr('value'); $.ajax({ url : "commonController.do?getDictInfo",//通用字典表处理请求 type : 'post', data : { dictionary:dictionary, dictCondition:dictCondition, popup:popup, value:value }, dataType:"json", async : true, cache : false, success : function(data) { $this.html(data.obj); } }); }); } ``` (3)datagrid在数据加载完成后,调用步骤(2)中的方法 ``` onLoadSuccess:function(data){ try{loadAjaxDict(data);}catch(e){} } ```