Extjs 常见问题、内容整理
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) {
}