① 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的類庫吧~
② Extjs5.0版本當中Ext.grid.GridPanel如何能夠通過增加xtype:'actioncolumn',操作列來實現這樣的設置操作
在做的demo里加了一個欄位 is_master,和你的問題有類似的處理,我默認的只能有一個用戶為master,點擊設為master後,重新載入數據,實現切換
更新sql:
update hs_user t set t.IS_MASTER=0 WHERE t.IS_MASTER=1;
update hs_user t set t.IS_MASTER=1 WHERE t.ID in (16);
-----------------------
希望以上對你有幫助
③ 已知name與id=值,如何在extjs的grid動態添加一行(這一行這有name和id兩列),求詳細方法,急!!!!!
var Plant = grid.getStore().recordType;
var p = new Plant({
name:值抄,
Id:值
});
grid.stopEditing();
grid.getStore().insert(0, p);
grid.startEditing(0,0);
在知道襲值之後 加這樣段代碼 試試
④ ExtJS grid表頭如何增加下拉項
extjs自己提供復選框列
//checkbox列
varfilecheckbox=newExt.grid.CheckboxSelectionModel();
//GridPanel
varfileGrid=newExt.grid.GridPanel({
store:fileStore,
columns:[
newExt.grid.RowNumberer(),//顯示列數
filecheckbox,//顯示復選框列
{//其他顯示列}]
//省略其他屬性
});
這樣你就可以而得到一個復選框,可以進行單選、全選了
如果你想自己定義的話,也可以
//定義filters
varfilters=newExt.ux.grid.GridFilters({
//
encode:encode,//jsonencodethefilterquery
local:local,//defaultstofalse(remotefiltering)
filters:[{
type:'numeric',
dataIndex:'id'
},{
type:'string',
dataIndex:'company',
disabled:true
},{
type:'numeric',
dataIndex:'price'
},{
type:'date',
dataIndex:'date'
},{
type:'list',
dataIndex:'size',
options:['small','medium','large','extralarge'],
phpMode:true
},{
type:'boolean',
dataIndex:'visible'
}]
});
//
//
//thefiltertypes(
varcreateColModel=function(finish,start){
varcolumns=[{
dataIndex:'id',
header:'Id',
//=true
//tousestore'sfield'stypeproperty(iftypepropertynot
//'auto'which
//GridFilterswillassumetobe'StringFilter'
filterable:true
//,filter:{type:'numeric'}
},{
dataIndex:'company',
header:'Company',
id:'company',
filter:{
type:'string'
//
//,disabled:true
}
},{
dataIndex:'price',
header:'Price',
filter:{
//type:'numeric'//
}
},{
dataIndex:'size',
header:'Size',
filter:{
type:'list',
options:['small','medium','large','extralarge']
//,phpMode:true
}
},{
dataIndex:'date',
header:'Date',
renderer:Ext.util.Format.dateRenderer('m/d/Y'),
filter:{
//type:'date'//
}
},{
dataIndex:'visible',
header:'Visible',
filter:{
//type:'boolean'//
}
}];
returnnewExt.grid.ColumnModel({
columns:columns.slice(start||0,finish),
defaults:{
sortable:true
}
});
};
然後
vargrid=newExt.grid.GridPanel({
colModel:createColModel(4),
plugins:[filters],
//這兩個屬性是重點,加上去就可以了
});
效果看圖片。
建議你去下載官方的源代碼,然後看其中的例子。
裡面有一個就是如何自定義這個的