A. extjs 表格如何實現動態添加列
Ext.onReady(function(){
varsm=newExt.grid.CheckboxSelectionModel();
varcm=[newExt.grid.RowNumberer(),sm,
{header:"編號",dataIndex:"id",width:65,hidden:true},
{header:"名稱",dataIndex:"name",width:65},
{header:"路徑",dataIndex:"url",width:65}
]
varfd=["id","name","url"];
varstore=newExt.data.JsonStore({
fields:fd
})
vardata=[{
id:1,name:"xiao",url:"sssssssssss",sex:"male"
}]
vargrid=newExt.grid.GridPanel({
sm:sm,
columns:cm,
store:store,
width:500,
height:400,
tbar:[{
text:"生成",
icon:"images/icons/add.png",
cls:"x-btn-text-icon",
handler:function(){
varres={fields:[{name:"sex"}],columns:[{header:'性別',dataIndex:"sex",width:65}]};
varcolumns=res.columns;
varfields=res.fields;
for(vari=0;i<fields.length;i++){
fd.push(fields[i].name);
cm.push(columns[i]);
}
//重新綁定store及column
ss=newExt.data.JsonStore({
fields:fd
});
grid.reconfigure(ss,newExt.grid.ColumnModel(cm));
ss.loadData(data)
}
}]})varwin=newExt.Window({
title:"sssssss",
width:700,
height:500,
layout:"fit",
closable:true,
items:[grid]
})
win.show();
});
主要是grid里的reconfigure這個方法:配置grid以使用一個不同的Store和Column Model並觸發'reconfigure'事件。 視圖將會被綁定到新的對象並刷新。
你自己引用ext3的類庫吧~
B. extjs創建grid表格,怎樣實現雙擊表格里某一行數據,跳轉到另一個panel頁面
listeners : {
dblclick : {
element : 'body',
fn : function() {
var _record = sm.getSelection();
scount = _record.length;
if (scount == 0) {//未選擇
Ext.Msg.alert('友情提示', '請選擇...!');
return false;
}
addTab(false);
}
}
},
-------------------
functionaddTab(closable){
++index;
tabs.add({
title:'NewTab'+index,
iconCls:'tabs',
html:'TabBody'+index+'<br/><br/>'+Ext.example.bogusMarkup,
closable:!!closable
}).show();
}
C. ExtJS GridPanel 點擊行選中事件 有兩個gridPanel 選中前面表格的一行第二個表格的數據會根據選中值變化
大概思路是這樣的:內
var grid2 = new Ext.grid.GridPanel({
store: store2
});
var grid1 = new Ext.grid.GridPanel({
store: store1,
listeners: {
'rowclick': function(grid, rowIndex, e) {
store2.baseParams.xxxid= grid.getSelectionModel().getSelected().data['xxxid'];
store2.load({
容 params: {
.....
}
});
}
}
});
D. extjs 如何實現定義的grid的第一列2列可以帶那種伸開和收縮的
---------------------解決方復案------------------------------
extjs ajax
---------------------解決方案------------------------------
gridpanel增加制id,使用
var store=Ext.getCmp('grid的id').getStore()得到數據源,然後你要怎麼操作都行了
store.getAt(0).get('your field name')
E. ExtJs4的表格雙擊事件 怎麼實現
function rowclickFn(grid, rowindex, e){
grid.getSelectionModel().each(function(rec){
alert(rec.get(fieldName)); //fieldName,記錄中的欄位名
});
}
var grid = new Ext.grid.GridPanel({
store: <your datastore>,
columns:[<your columns>],
renderTo:'example-grid',
height:200,
listeners:{
//單擊
rowdblclick : function(grid,row){
alert("rowdblclick")
F. extjs的grid列寬調整問題
簡單點:在column中加上
,
renderer: function (value, meta, record) {
meta.style = 'overflow:visible;white-space:normal;';
return value;
}
可以自動換行,如果要加版Tip
前面加上:
Ext.tip.QuickTipManager.init();
column中加權上:
renderer: function (value, meta, record) {
meta.tdAttr = 'data-qtip="' + value + '"';
return value;
}
G. 關於ExtJS的grid store載入的問題,grid改變列之後,用grid.reconfigure追加列,只載入新追加列的數據
一個grid只能對應一個store。
用grid.reconfigure的話,也是把之前的store換成現在的store
grid刷新數據的話,是刷整個store,不專會單刷某一列
如果屬使用grid.reconfigure換掉store,那麼是需要重新更新store的數據的
而你想保留原有的,只是把新加的列的數據刷出來,其實可以這樣
1.把store里record中的數組定義出去
2.把columnmodel里的數組也定義出去
3.先用以上兩個數組,建立record、store、column、grid等等,然後讀數據,為第一次的grid數據
4.這時需要追加列,只需要將剛才的兩個數組繼續追加,然後再建立新的record、store、column然後用grid.reconfigure更新grid,這時在更新數據,其數據就會跟第一次的一樣且多了新加的列的數據(當然前提是你後台傳的數據里也同樣多了該列所對應的數據信息)
H. extjs 如何把兩個store數據放在同一個gridpanel里
Ext.getCmp('tasklist_grid').reconfigure(taskStore);
reconfigure 參數放入要重新綁定的store 就可以。此時store中的fields 匹配grid columns中的 dataIndex ,才正回常顯答示。