① 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進行重新載入,載入時設置參數為專第一個表格選中行屬的內容
}
}
});