extjs TextField 可编辑列表 blue失去焦点之后第一次取不到值得问题
例子
/**
* 当铁路货票号都填写完成之后 保存按钮可用 by hly 2013-11-26
* @param {Object} comp
* @memberOf {TypeName}
*/
beforeSaveTojudje : function(comp){
var grid = this;
var beforeSaveTojudje =grid.getTopToolbar().find('idFlag','beforeSaveTojudje')[0];
var store = grid.getStore();
var records = store.getRange(0,store.getCount()-1);
for(var j =0 ;j<records.length;j++){
if(j==grid.globalRowIndex){//因为第一次失去焦点时records[j].get("invoiceNumber")获得不到刚输入的值,所以当遍历的j==监听双击的行索引时赋值
records[j].set("invoiceNumber",comp.getValue());
}
if(records.length>0){
if(records[j].get("invoiceNumber")==""){//只要有一个为空 保存按钮就为置灰状态
beforeSaveTojudje.disable();
break;
}else{
beforeSaveTojudje.enable();
}
}
}
},
=============================================================================================
第一次records[j].get("invoiceNumber")往往获得不到刚输入的值,这让我们很是蛋疼,明明已经有值了为啥就是获得不到,是
组件问题还是我的方法有问题 我没有深思去研究,(当你再次双击单元格时这个值就能取到了)
解决办法----→ 在我们双击,监听事件里面的
this.listeners={
cellclick : function(grid, rowIndex, columnIndex, eve){
if(columnIndex == 1){
grid.manualMatch();
}
},
celldblclick : function(celldbclickGrid,rowIndex,columnIndex ,e){
//获得双击的grid
grid.globalGrid = celldbclickGrid;
grid.globalRowIndex = rowIndex;
grid.globalColumnIndex =columnIndex;
grid.curRecord = grid.getStore().getAt(rowIndex);
},
};我们可以把行、列索引赋值给全局的变量,当我们遍历的时候 当j值与我们双击的 行索引的值相等时(相等就代表我们双击的
单元格,这是blue失去焦点不是取不到值么,)
我们就手动给他塞值: (赛的值不是乱噻的是 双击单元格那个records[j])
if(j==grid.globalRowIndex){//因为第一次失去焦点时records[j].get("invoiceNumber")获得不到刚输入的值,所以当遍历的j==监听双击的行索引时赋值
records[j].set("invoiceNumber",comp.getValue());
}

浙公网安备 33010602011771号