導航:首頁 > 編程語言 > extjs5grid在線演示

extjs5grid在線演示

發布時間:2025-01-08 02:14:06

① extjs grid 列頭分行



/**

* 表格綜合示例

*

* @author XiongChun

* @since 2010-10-20

*/

Ext.onReady(function() {


group1 = [{}, {

header : '分組1-1a',

colspan : 4,

align : 'center'

}, {}, {

header : '分組1-3',

colspan : 5,

align : 'center'

}];


var group2 = [{}, {

header : '分組2-1',

colspan : 2,

align : 'center'

}, {

header : '分組2-2',

colspan : 2,

align : 'center'

}, {

header : '單位',

rowmerge:true,

domid:'group_dw',

align : 'center'

}, {

header : '分組2-3',

colspan : 2,

align : 'center'

}, {

header : '分組2-4',

colspan : 3,

align : 'center'

}];

/*

var group = new Ext.ux.grid.ColumnHeaderGroup({

rows : [group1, group2]

});

*/


var group = new Ext.ux.plugins.GroupHeaderGrid({

rows : [group1, group2]

});


// 定義自動當前頁行號

var rownum = new Ext.grid.RowNumberer({

header : 'NO',

width : 28

});

// 復選框

var sm = new Ext.grid.CheckboxSelectionModel();


// 定義列模型

var cm = new Ext.grid.ColumnModel([rownum, {

header : '項目ID', // 列標題

dataIndex : 'xmid', // 數據索引:和Store模型對應

sortable : true

// 是否可排序

}, {

header : '項目名稱',

dataIndex : 'xmmc',

sortable : true,

width : 200

}, {

header : '項目熱鍵',

dataIndex : 'xmrj'

}, {

header : '規格',

dataIndex : 'gg'

}, {

dataIndex : 'dw',

align:'center',

fixed:true,

width : 60

}, {

header : '啟用狀態',

dataIndex : 'qybz',

// 演示render的用法(代碼轉換,該render由<G4Studio:ext.codeRender/>標簽生成)

renderer : QYBZRender,

width : 60

}, {

header : '劑型',

dataIndex : 'jx',

width : 60

}, {

header : '產地',

dataIndex : 'cd',

width : 200

}, {

header : '醫院編碼',

dataIndex : 'yybm'

}, {

header : '更改時間',

dataIndex : 'ggsj'

}]);


/**

* 數據存儲

*/

var store = new Ext.data.Store({

// 獲取數據的方式

proxy : new Ext.data.HttpProxy({

url : 'gridDemo.do?reqCode=querySfxmDatas'

}),

// 數據讀取器

reader : new Ext.data.JsonReader({

totalProperty : 'TOTALCOUNT', // 記錄總數

root : 'ROOT' // Json中的列表數據根節點

}, [{

name : 'xmid' // Json中的屬性Key值

}, {

name : 'sfdlbm'

}, {

name : 'xmmc'

}, {

name : 'xmrj'

}, {

name : 'gg'

}, {

name : 'dw'

}, {

name : 'qybz'

}, {

name : 'jx'

}, {

name : 'cd'

}, {

name : 'yybm'

}, {

name : 'ggsj'

}])

});


/**

* 翻頁排序時候的參數傳遞

*/

// 翻頁排序時帶上查詢條件

store.on('beforeload', function() {

this.baseParams = {

xmmc : Ext.getCmp('xmmc').getValue()

};

});

// 每頁顯示條數下拉選擇框

var pagesize_combo = new Ext.form.ComboBox({

name : 'pagesize',

triggerAction : 'all',

mode : 'local',

store : new Ext.data.ArrayStore({

fields : ['value', 'text'],

data : [[10, '10條/頁'], [20, '20條/頁'],

[50, '50條/頁'], [100, '100條/頁'],

[250, '250條/頁'], [500, '500條/頁']]

}),

valueField : 'value',

displayField : 'text',

value : '20',

editable : false,

width : 85

});

var number = parseInt(pagesize_combo.getValue());

// 改變每頁顯示條數reload數據

pagesize_combo.on("select", function(comboBox) {

bbar.pageSize = parseInt(comboBox.getValue());

number = parseInt(comboBox.getValue());

store.reload({

params : {

start : 0,

limit : bbar.pageSize

}

});

});


// 分頁工具

var bbar = new Ext.PagingToolbar({

pageSize : number,

store : store,

displayInfo : true,

displayMsg : '顯示{0}條到{1}條,共{2}條',

plugins : new Ext.ux.ProgressBarPager(), // 分頁進度條

emptyMsg : "沒有符合條件的記錄",

items : ['-', '&nbsp;&nbsp;', pagesize_combo]

});


// 表格工具欄

var tbar = new Ext.Toolbar({

items : [{

xtype : 'textfield',

id : 'xmmc',

name : 'xmmc',

emptyText : '請輸入項目名稱',

width : 150,

enableKeyEvents : true,

// 響應回車鍵

listeners : {

specialkey : function(field, e) {

if (e.getKey() == Ext.EventObject.ENTER) {

queryCatalogItem();

}

}

}

}, {

text : '查詢',

iconCls : 'page_findIcon',

handler : function() {

queryCatalogItem();

}

}, {

text : '刷新',

iconCls : 'page_refreshIcon',

handler : function() {

store.reload();

}

},'->' ,{

text : '重設列標題',

iconCls : 'acceptIcon',

handler : function() {

cm.setColumnHeader('2','開天闢地');

}

}, {

text : '重設分組列標題',

iconCls : 'acceptIcon',

handler : function() {

Ext.getDom('group_dw').innerHTML = '開天闢地';

}

}]

});


// 表格實例

var grid = new Ext.grid.GridPanel({

// 表格面板標題,默認為粗體,我不喜歡粗體,這里設置樣式將其格式為正常字體

title : '<span class="commoncss">表格綜合演示七(表頭分組支持)</span>',

height : 500,

frame : true,

autoScroll : true,

region : 'center', // 和VIEWPORT布局模型對應,充當center區域布局

margins : '3 3 3 3',

store : store, // 數據存儲

stripeRows : true, // 斑馬線

cm : cm, // 列模型

tbar : tbar, // 表格工具欄

bbar : bbar,// 分頁工具欄

plugins : group,

viewConfig : {

// 不產橫向生滾動條, 各列自動擴展自動壓縮, 適用於列數比較少的情況

// forceFit : true

},

loadMask : {

msg : '正在載入表格數據,請稍等...'

}

});


// 頁面初始自動查詢數據

// store.load({params : {start : 0,limit : bbar.pageSize}});


// 布局模型

var viewport = new Ext.Viewport({

layout : 'border',

items : [grid]

});


// 查詢表格數據

function queryCatalogItem() {

store.load({

params : {

start : 0,

limit : bbar.pageSize,

xmmc : Ext.getCmp('xmmc').getValue()

}

});

}


});

② Extjs grid列里怎麼顯示圖片

Ext.onReady(function(){
varcm=newExt.grid.ColumnModel([newExt.grid.RowNumberer(),{
header:'編號',
dataIndex:'id',
sortable:true
},{
header:'性別',
dataIndex:'sex',
renderer:function(value){
if(value=='male'){
return"<spanstyle='color:green;font-weight:bold;'>綠男</span><imgsrc='user_male.gif'/>";
}else{
return"<spanstyle='color:red;font-weight:bold;'>紅女</span><imgsrc='user_female.gif'/>";
}
},
sortable:true
},{
header:'名稱',
dataIndex:'name',
align:"center",
sortable:true
}]);
vardata=[['1','male','name1','descn1'],
['2','female','name2','descn2'],
['3','male','name3','descn3'],
['4','female','name4','descn4'],
['5','male','name5','descn5'],
['6','female','name6','descn6']];
vards=newExt.data.Store({
proxy:newExt.data.MemoryProxy(data),
reader:newExt.data.ArrayReader({},[
{
name:'id'
},//{name:'id',mapping:1},
{
name:'sex'
},{
name:'name'
},{
name:'descn'
}])
});
ds.load();
vargrid=newExt.grid.GridPanel({
title:'GridPanel',
id:'view_grid',
renderTo:'grid',
ds:ds,
cm:cm,
width:400,
autoHeight:true,
autoWidth:true,
enableColumnMove:false,
autoSizeColumns:true,//根據每一列內容的寬度自適應列的大小
trackMouseOver:true,//滑鼠移動時高亮顯示
frame:true,
selModel:newExt.grid.RowSelectionModel({
singleSelect:true
}),
iconCls:'icon-grid'
});
});

如圖所示,圖片是綠色和紅色的人,根據值,判斷顯示什麼顏色的。你可以改成根據0或1顯示或不顯示圖片。

③ EXTJS中如何調整Grid的長度,根據瀏覽器(谷歌)自動調整

一般在EXT中 , 會把組件都放到viewport中 , viewport 是一個自動適應瀏覽去整個區域的一個容器...

可以把其他的組件都放到viewport中...

比如你上面的grid..可以放到viewport中 , 然後viewport設置 layout = fit 就可以...

具體可以去查看一下API.

//下面代碼是直接從API的例子中復制的..可以看一下
Ext.create('Ext.container.Viewport',{
layout:'border',
items:[{
region:'north',
html:'<h1class="x-panel-header">PageTitle</h1>',
border:false,
margins:'0050'
},{
region:'west',
collapsible:true,
title:'Navigation',
width:150
//
},{
region:'south',
title:'SouthPanel',
collapsible:true,
html:'Informationgoeshere',
split:true,
height:100,
minHeight:100
},{
region:'east',
title:'EastPanel',
collapsible:true,
split:true,
width:150
},{
region:'center',
xtype:'tabpanel',//TabPanelitselfhasnotitle
activeTab:0,//Firsttabactivebydefault
items:{
title:'DefaultTab',
html:'Thefirsttab'scontent.Othersmaybeaddeddynamically'
}
}]
});

④ extjs grid報錯。this.el.dom為空或不是對象。

你的寫法有點奇怪。不過根據你的報錯信息應該是沒有渲染的對象。
錯誤應該出在grid.render()上,應該攜程grid.render('grid'),引號的grid就是你頁面上那個div的id

⑤ extjs5 定義grid 列時如何自定義一個顏色列表選擇的combox

var myData = [ ['2008-08-05 12:11:11',0.03], ['2008-09-06 12:07:19',1.63] ]; store.loadData(myData); var grideast = new Ext.grid.GridPanel({ store: store, }) 重新創建myData數組,再調用內 store.loadData(myData);就行容。

⑥ 如何讓Extjs4.1中的treegrid和treestore實現分頁

Extjs treeGrid分頁實例,項目中用到,拿出來跟大家分享一下,主要是通過兩個store實現。

[javascript] view plain
ProTreeGrid = Ext.extend(Ext.tree.Panel, {
_baseParam : {
process : '項目立項',
isShow : 'true',
start : 1
},
constructor : function(_config) {
if (_config == null)
_config = {};
Ext.apply(this, _config);

this.store1 = Ext.create('Ext.data.JsonStore', {
autoLoad : true,
pageSize : basicConstant.LIMIT,
proxy : {
type : 'ajax',
url : "xmgl/pro-info-manage!page.action",
extraParams : this._baseParam,
reader : {
type : 'json',
root : 'rows',
totalProperty : "totalCount"
}
},
model : 'ProInfo'
});

this.store = Ext.create('Ext.data.TreeStore', {
model : 'ProInfo',
proxy : {
type : 'ajax',
url : 'xmgl/pro-info-manage.action'
},
folderSort : true,
listeners : {
'beforeload' : {
fn : function(_s, _op, _e) {
this._baseParam.limit = basicConstant.LIMIT;
_s.proxy.extraParams = this._baseParam;
},
scope : this
}
}
});

this['selModel'] = Ext.create('Ext.selection.TreeModel', {
mode : 'SINGLE',
listeners : {
'selectionchange' : {
fn : this.selectionChangeHandler,
scope : this
}
}
});
this['columns'] = [ {
xtype : 'treecolumn',
text : '項目性質',
flex : 1,
sortable : true,
dataIndex : 'proClass'
}, {
text : '項目名稱',
flex : 2.5,
dataIndex : 'proName',
sortable : true
}, {
text : '流程狀態',
flex : .75,
dataIndex : 'process',
sortable : true
}, {
text : '項目時間',
xtype : 'datecolumn',
format : 'Y-m-d',
dataIndex : 'crTime',
sortable : true,
flex : .85
}, {
text : '項目編號',
flex : 1,
dataIndex : 'proNo',
sortable : true
}, {
text : '項目單位',
flex : 1,
dataIndex : 'unit',
sortable : true
}, {
text : '優先順序',
flex : .6,
dataIndex : 'priority',
sortable : true
}, {
text : '項目類型',
flex : .75,
dataIndex : 'proType',
sortable : true
}, {
text : '項目內容',
flex : 2,
dataIndex : 'proContent',
sortable : true
}, {
text : '附件數',
flex : .6,
dataIndex : 'fileCount',
sortable : true
} ]
ProTreeGrid.superclass.constructor.call(this, {
useArrows : true,
height : this._height,
width : this._width,
autoScroll : true,
rootVisible : false,
dockedItems : [ {
_treeGrid : this,
xtype : 'pagingtoolbar',
id : 'PROTREEGRID_PAGEBAR',
store : this.store1,
dock : 'bottom',
displayInfo : true,
listeners : {
change : function(obj, pdata, options) {
if(this._treeGrid._baseParam.start==pdata.currentPage)
return;
this._treeGrid._baseParam.start = pdata.fromRecord;
this._treeGrid._baseParam.limit = basicConstant.LIMIT;
this._treeGrid.store.load( {
params : this._treeGrid._baseParam
});
}
}
} ],
viewConfig : {
stripeRows : true,
enableTextSelection : true,
getRowClass : function(record) {
if (record.get("proClass") == '收入項目') {
return 'srcss';
} else if (record.get("proClass") == '支出項目') {
return 'zccss';
}
}
},
tbar : new Ext.toolbar.Toolbar( {
id : 'TBAR_PROTREEGRID',
items : [ new ProClassQueryCombo( {
width : 140,
labelWidth : 60
}), '-', '項目名稱:', {
xtype : 'textfield',
width : 70
}, '無分項總體項目顯示:', {
xtype : 'checkbox',
checked : true,
width : 70
}, {
text : "查詢",
icon : 'images/icons/search.gif',
handler : this.onSearch,
scope : this
}, {
text : "重置",
icon : 'images/icons/del.gif',
handler : this.onReset,
scope : this
}, {
text : "高級查詢",
icon : 'images/icons/search.gif',
handler : this.onAdvSearch,
scope : this
} ]
})
});
},
selectionChangeHandler : function() {
},
reLoadData : function() {
this.store.load( {
params : this._baseParam
});
this.store1.load( {
params : this._baseParam
});
},
onSearch : function() {
var _param = {};
var _tbar = Ext.getCmp('TBAR_PROTREEGRID');
_param.process = _tbar.items.items[0].value;
_param.proClass = _tbar.items.items[2].value;
_param.proName = _tbar.items.items[5].value;
_param.isShow = _tbar.items.items[7].value;
// this.store1.load(1);
this._baseParam = _param
this.reLoadData();
},
onReset : function() {
var _tbar = Ext.getCmp('TBAR_PROTREEGRID');
_tbar.items.items[0].setValue('項目立項');
_tbar.items.items[2].setValue('');
_tbar.items.items[5].setValue('');
this._baseParam = {
process : '項目立項',
isShow : 'false'
};
},
onAdvSearch : function() {
new ProQueryWin( {
_grid : this,
_process : '項目立項'
}).show();
}

});

⑦ 關於extjs grid復制粘貼功能

editor:newExt.form.DateField({id:"id1"}),
renderer:function(value,metadata,record,rowIndex,colIndex,store){
//這里有,有stroe,你想要的值不都有了么
//比如,這個加在第三列,然後你肯定知道行數,用store定位到某行的record,那麼所有的值不都有了么,然後想怎麼賦值不就怎麼賦值(復制)了么
}

詳細的你可以查api

Ext.grid.Column中:

renderer
:Function
(可選)當該方法通過傳遞以下參數時,會返回可顯示的數據:
value:Object
該單元格的數據值。
metadata:Object
一個對象,您可以在其中設置以下屬性:

css:String
一個添加到該單元格的TD元素上的CSS樣式名。
attr:String
一個定義HTML屬性的字元串,應用到數據容器內的表格單元格元素上(例如:'style="color:red;"')。
record:Ext.data.record
從數據中提取的Ext.data.Record。
rowIndex:Number
Rowindex
colIndex:Number
Columnindex
store:Ext.data.Store
從該Ext.data.Store對象中提取記錄。

另外幾個你會用到的方法

Ext.data.Store中:

getAt(Numberindex):Ext.data.Record
獲取指定位置的記錄。
參數:
index:Number
需要查找的記錄的索引位置。
返回值:
Ext.data.Record
所傳遞的索引位置的Record。如果沒有找到,返回undefined

Ext.data.Record中:

get(Stringname):Object
獲取指定名稱欄位的值。
參數:
name:String
需要獲取值的欄位名稱
返回值:
Object
欄位的值。
set(Stringname,String/Object/Arrayvalue):void
將欄位名設置為指定的值。
閱讀全文

與extjs5grid在線演示相關的資料

熱點內容
什麼是離線導航數據 瀏覽:164
微信本地二手交易平台 瀏覽:726
什麼是創意編程啟蒙 瀏覽:988
用來存放被用戶刪除的文件 瀏覽:307
有哪些app有拼手氣紅包 瀏覽:635
數控車斜線和直線過渡圓怎麼編程 瀏覽:572
去掉文件校驗 瀏覽:427
能統計去過哪些城市旅遊的app 瀏覽:769
windows7文件根據什麼識別 瀏覽:872
泡友app 瀏覽:820
win10怎麼取消指紋登陸 瀏覽:81
百度雲帳號如何找回密碼 瀏覽:443
iphone手機聯系人導入 瀏覽:33
為什麼數據流量很差 瀏覽:921
無錫哪個編程課好 瀏覽:285
手機程序破了 瀏覽:741
java滑鼠特定點響應 瀏覽:115
word文檔項目符號 瀏覽:718
配置文件錯誤修復 瀏覽:270
桌面上打開的文件怎麼加入字 瀏覽:335

友情鏈接