① extjs grid.Panel 局部刷新
我的处理方法是前台轮询查询最新变更数据。
利用Ext.util.TaskRunner()
var task = {
run: function(){
//更新表格部分数据,循环体版
//这里需要获取后权台变更的最新数据。然后根据这些数据修改当前表格中的数。
//获取需要修改的记录:var record = store.getById(数据ID);
//修改列的值: record.set(参数一: 列数据源,即dataindex ,参数二:更新后的值);
},
interval: 1000 //一秒执行一次
}
var runner = new Ext.util.TaskRunner();
runner.start(task);
② extjs 如何实现在表格编辑状态下输入数字后,按回车自动到下一行的编辑状态
你在GRID里面加一个KEYS 监听回车。
然后在监听方法里面获取当前编辑的CELL 然后得到当前编辑的CELL下一列的CELL。 然后调用开始编辑方法。
具体的用法可以看看editgridpanel的api 找到keys这个属性 看看说明
③ extjs定时刷新EditorGridPanel中的某一列
你先从后台得到最数的数据,再通过数据的id去store里找这条数据, sore.find(index,function())这个方法找,找到后,把这个record拿出来。。再record.set(index,value)修改,再record.dirty=false;再grid.view.refresh()。就好了。只对这一条记录刷新
④ ExtJS如果设置表格行高,不要改公用样式只是针对当前表格。
先加一个自定义样式
.custom-grid-row{
height:35px;
}
然后设置viewConfig
Ext.create('Ext.grid.Panel',{
height:300,
width:400,
loadMask:true,
store:store,
title:'goods',
viewConfig:{
getRowClass:function(){
//在这里添加自定样式改变这个表格的行高
return'x-grid-rowcustom-grid-row';
}
},
columns:[]
});
⑤ Extjs里边,用GridPanel做的表格,如何锁列
colModel.config[0].locked = true //强制锁定第一列
⑥ ExtJS 如何在页面获取当前行某一列的值,并将该列值从0改为1
大致思路:
var _grid = Ext.getCmp('grid1');
var record = _grid.selModel.getSelected(); // 获取当前行
record.data.code = 'xxx'; // 这里给code和name两列赋上指定值
record.data.name = 'xxx';
record.commit(); //提交
_grid.getView().refresh(); //刷新表格
⑦ 请问,extjs中怎样才能动态的设置EditorGridPanel的单元格不可编辑
对,就是用 beforeedit。
比如表里只有你说的三个字段,并且顺序为 direct , load, credit
listeners:{
beforeedit:function(editor,e){
if(e.colIdx==1&&e.record.data.direct==0)){
returntrue;
}elseif(e.colIdx==2&&e.record.data.direct==1){
returntrue;
}else{
returnfalse;
}
}
}
//你的grid中要编辑的column必须要有editor,这个知道吧?
editor:{
xtype:'numberfield',//数字,字符xtype:'textfield'字符
}
//更重要的是,你的GRID必须要有PLUGIN
plugins:[Ext.create('Ext.grid.plugin.CellEditing',{
clicksToEdit:1//单击,双击2
})]
⑧ ExtJS 4中如何获取表格中改动的数据 如何将修改数据上传和修改store
1.Ext.data.Model 里面有dirty属性,如果改动过,dirty=true,你可以根据这个判断一下.
2.如何数据上传的话,你可以将表中的数据存储到一个数组里面,然后传到后台,到了后台再做处理.给你个例子
var answers = [];//存放表中数据
for (var i = 0; i < gridStore.getCount(); i++) {
var answer = gridStore.getAt(i);
answers.push(new Answer({
answer: answer.get("answer"),
isRight: answer.get("isRight")
}));
}
3.修改store的话,直接上传之后store.load()一下就好了.
其实我觉得如果可以的话,直接将原本数据删除,然后重新插入数据比较简单一点
⑨ ExtJs实现刷新Grid单个单元格
首先你要找到你要修改的那行记录,然后再修改那行记录中某个指定字段 值。
代码:
//获取内grid表格的store
var store = grid.getStore();
//寻找行容记录
var index = store.find("fieldName","value");
if(index == -1){
return;
}
var record = store.getAt(index);
//修改值
record.set("要更新的列","要更新的目标值");
以上执行完了,你就可以看到你的表格里面你指定的那行记录的那个单元格的值变成你要修改的了。
⑩ extjs 表格默认全选,加载后,点击取消选中某行,如何获取其它选中行的内容
var sm = Ext.create('Ext.selection.CheckboxModel', {
listeners: {
selectionchange: function (sm, selections) {
//在该事件中对第二个表格的store进行重新加载,加载时设置参数为专第一个表格选中行属的内容
}
}
});