ExtJS 设置renderer函数,不同的列的renderer函数居然是一样的

对不同列设置不同的renderer,主要用于替换字段,比如user_id=>用户名,  审核状态从数字到名称的转换等

ExtJS 设置renderer函数,不同的列的renderer函数居然是一样的_第1张图片

ExtJS 设置renderer函数,不同的列的renderer函数居然是一样的_第2张图片

 

在有多个列要替换时,写成下面这样是不行的,貌似function只创建了一次

for (var i = 0; i < t_headers.length; i++) {
	   var render_store = t_headers[i]['render_store'];
 
	   t_headers[i]['renderer'] = function (value, cellmeta, record, rowIndex, columnIndex, store) {
		console.log('columnIndex='+columnIndex);
        console.log(render_store);

       var val = (undefined != render_store[value]) ? render_store[value] : value;
       return val;
       }
}

改成这种方式就ok了,函数里面返回函数

/**
 * 获取renderer函数
 */
getRendererFunction:function(render_store){
	return function (value, cellmeta, record, rowIndex, columnIndex, store) {
		var val = (undefined != render_store[value]) ? render_store[value] : value;
		return val;
	}
},
		
...

for (var i = 0; i < t_headers.length; i++) {
	var render_store = t_headers[i]['render_store'];

	t_headers[i]['renderer'] = me.getRendererFunction(render_store);
}

 

你可能感兴趣的:(js,extjs)