Extjs Combo控件setValue() 显示ID或无效

针对ExtJS 3.x,不过其他版本原理一样
背景:在需要查看相关信息进行编辑form时,原来form表单中设置好的combo可能需要重新设置值,但在这之前需要加载显示原来的值。但是头疼的是,combo要么显示正常要么显示后台id。

这个问题之前也困扰了好久,今天终于在网上找到一种解决方法:因为 combo store的load是异步的,在extjs里边所有datastore的load都是异步;这给程序编写带来一定麻烦。界面画完的时候datastore还不一定加载成功了,所以需要在datastore加载完成后对combobox做处理即可:

//定义combo控件store load事件
combo.getStore().on('load', this.onStoreLoad, this);

onStoreLoad:function(store, records, options) {
    var value = combo.getValue();
    if(value > 0) {
        combo.setValue(value);
    }
}

Extjs GridPanel renderer用法详解

Extjs GridPanel中定义的列模型中存在 renderer 方法。主要用来处理数据后用来前台显示的内容。

/**
 * value 当前单元格的值
 * cellmeta 保存的是cellId单元格id,似乎是列号,css是这个单元格的css样式
 * record 行的所有数据
 * rowIndex 行号
 * columnIndex 列号
 * store 构造表格数据传递获取数据的store
 */
renderer:function(value, cellmeta, record, rowIndex, columnIndex, store) {
 
}

标签: extjs

添加新评论