① extjs中如何选中grid中的行,并设置该行不可编辑
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [
{ text: 'Name', dataIndex: 'name' },
{ text: 'Email', dataIndex: 'email', flex: 1 },
{ text: 'Phone', dataIndex: 'phone' }
],
listeners:{
beforeedit:function(editor, e, eOpts){
//return false;//不可编辑
return true;//可编辑
}
},
height: 200,
width: 400,
renderTo: Ext.getBody()
});
② extjs 在grid编辑控件上 点一个单元格修改后 怎样及时保存到数据库
手头没有代码,兄弟,我曾静做过,给你个思路
ext例子有个编辑单元格的例子,你先看那版个,当你编辑权完,应点击保存,再保存到数据库中,具体是点保存的时候加上一个函数,在函数中,拿到修改的东东,ajax请求后台,把你修改的值拼成json串传到后台,在后台将之转换成对象属性并进行数据库更新 ,当然也可以拼成一个数组,传到后台 ,看你喜好了。
③ extjs 如何实现在表格编辑状态下输入数字后,按回车自动到下一行的编辑状态
你在GRID里面加一个KEYS 监听回车。
然后在监听方法里面获取当前编辑的CELL 然后得到当前编辑的CELL下一列的CELL。 然后调用开始编辑方法。
具体的用法可以看看editgridpanel的api 找到keys这个属性 看看说明
④ extjs4.0 grid 行编辑 之后保存失败
var records = storeERP.getUpdatedRecords();//这句可以获取所有改变的值
alert(records);
Ext.Array.each(records, function(model) {
itemID = Ext.decode(model.data.BB002);
arr.push(itemID);
comID = Ext.JSON.encode(model.data.MW002);
alert(comID);
array.push(comID);
});
然後,全部提交,也就是一次性提交就好了,
你这样试试看,一次性提交
⑤ Extjs 4.x 为GridPanel动态添加一行数据
//声明对应grid的Record对象
var ItemRecord = Ext.data.Record.create([
{name:'itemid'},
{name:'itemcode'},
{name:'itemname'},
{name:'price'},
{name:'mark'}
]);
//点新增按钮时则执行类似如下函数
function addNewLine2Grid(grid){
var rec = new ItemRecord({ //实例化Record对象,并赋予各字段初始值
'itemid': 0,
'itemcode': '',
'itemname': '',
'price': 0.00,
'mark': ''
});
grid.store.insert(grid.store.getCount(), rec); //插入新行作为grid最后一行
grid.getView().refresh(); //刷新
//grid.plugins[1].startEditing(grid.store.getCount()-1,4); //编辑最后一行第4列
}
⑥ Extjs的Ext.grid.GridPanel组件进行行编辑或单元格编辑之后如何将修改之后的数据及时的更新到数据库
Ext.grid.plugin.CellEditing
Ext.grid.plugin.RowEditing
你用的应该是以上两种
你可以用canceledit事件做提交后台,总是方式回很多
然后答grid.getStore().reload();刷新
⑦ 使用extjs ,直接在grid上编辑后,如何将整个修改的数据行 传到后台并解析成datatable
呃 这个很简单啊 grid修改编辑后 其实它自己已经记录了你所修改的数据
你只需要获取并访问后台就行了
editor.on({
scope: this,
afteredit: function(roweditor, changes, record, rowIndex) {
Ext.Ajax.request({
url : localhostURL + '/Ad.do',
method: 'POST',
jsonData :Ext.util.JSON.encode(record.data),
// record.phantom 是否为更新数据 ? true : false
params: {action:'saveOrUpdate'},
success: function(response) {
if(response.responseText == 'succ'){
Ext.example.msg('Message','Operation success!');
}else{
Ext.example.msg('Message','Operation failed!');
}
reloadAdStore();
}
});
}
});
你看 很简单 就这样就可以了
⑧ 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的,在修改grid中的数据时,如何把要修改的数据复制到新打开的修改窗口中
先建立一个新窗口,如果已经新建好,则新建一个from,将form的randerTo设置为新窗口的内对应容的容器,然后监听grid的rowselect事件,在事件中即可以复制数据到新窗口的form中,像这样:
rowselect: function(sm, row, rec) {
Ext.getCmp("company-form").getForm().loadRecord(rec);
}
如果要修改,估计还要添加一个form的提交按钮,并作相应的点击事件处理