ExtJs設(shè)置GridPanel表格文本垂直居中示例
更新時間:2013年07月15日 16:49:49 作者:
本文為大家詳細(xì)介紹下ExtJs如何設(shè)置GridPanel表格文本垂直居中,具體實現(xiàn)代碼及截圖如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
業(yè)務(wù)場景,需要實現(xiàn)最終效果圖如下:
GridPanel代碼如下配置:
{
xtype : 'grid',
id : 'grid_jglb',
frame : true,
region : 'center',
title : '列表詳細(xì)信息',
columnLines : true,
loadMask : true,
store : 'test_store',
viewConfig : {
forceFit : true,
scrollOffset : 0
},
anchor : '100%',
selModel : new Ext.grid.CheckboxSelectionModel({
moveEditorOnEnter : false,
width : 28
}),
columns : [{
xtype : 'gridcolumn',
id : 'gridcolumn_id',
align : 'center',
dataIndex : 'COLUMN1',
editable : false,
header : '列名1',
sortable : true,
width : 100
}, {
xtype : 'gridcolumn',
align : 'center',
dataIndex : 'COLUMN2',
editable : false,
header : '列名2',
sortable : true,
width : 100
}, {
xtype : 'gridcolumn',
align : 'center',
dataIndex : 'COLUMN3',
editable : false,
header : '列名3',
sortable : true,
width : 100
}, {
xtype : 'gridcolumn',
align : 'center',
dataIndex : 'COLUMN4',
id : 'colidx1',
editable : false,
header : '列名4',
sortable : true,
width : 100
}, {
xtype : 'gridcolumn',
align : 'center',
dataIndex : 'COLUMN5',
hidden : true,
sortable : true
}],
bbar : {
xtype : 'paging',
autoShow : true,
displayInfo : true,
pageSize : 10,
store : 'test_store'
},
tbar : [{
text : '新增',
iconCls : 'icon-add',
id : 'btn_mxxz'
}, '-', {
text : '修改',
iconCls : 'icon-edit',
id : 'btn_mxxg'
}, '-', {
text : '刪除',
iconCls : 'icon-delete',
id : 'btn_mxsc'
}]
}
JsonStore的代碼就不貼出來了。接下來看看如何實現(xiàn)垂直居中了。
實現(xiàn)思路:通過獲取DOM節(jié)點(diǎn)方式,獲取到表格內(nèi)所有的TD,設(shè)置需要居中的TD的 cssText的值為:'text-align:center;lineheight:130px;vertical-align:center;'
實現(xiàn)依據(jù):Ext中GridPanel容器最終是生成DIV標(biāo)簽來渲染的,其中我們所看到的每一行記錄,比如:“測試項,0,20”這一行數(shù)據(jù)就是被“包”在一個div內(nèi)的一個table。只要我們根據(jù)Ext的生成規(guī)則找到該table,就可以操作其td元素了。
如圖:
實現(xiàn)過程如下:
Ext.getCmp("grid_jglb").getStore().on('load',setTdCls);//設(shè)置表格加載數(shù)據(jù)完畢后,更改表格TD樣式為垂直居中
function setTdCls(){
var gridJglb=document.getElementById("grid_jglb");
var tables = gridJglb.getElementsByTagName("table");//找到每個表格
for(var k = 0; k < tables.length; k++){
var tableV=tables[k];
if(tableV.className=="x-grid3-row-table"){
var trs=tables[k].getElementsByTagName("tr");//找到每個tr
for(var i = 0;i < trs.length;i++){
var tds=trs[i].getElementsByTagName("td");//找到每個TD
for(var j = 1;j<tds.length;j++){
tds[j].style.cssText="width:202px;text-align:center;line-height:130px;vertical-align:center;";
}
}
};
}
}

GridPanel代碼如下配置:
復(fù)制代碼 代碼如下:
{
xtype : 'grid',
id : 'grid_jglb',
frame : true,
region : 'center',
title : '列表詳細(xì)信息',
columnLines : true,
loadMask : true,
store : 'test_store',
viewConfig : {
forceFit : true,
scrollOffset : 0
},
anchor : '100%',
selModel : new Ext.grid.CheckboxSelectionModel({
moveEditorOnEnter : false,
width : 28
}),
columns : [{
xtype : 'gridcolumn',
id : 'gridcolumn_id',
align : 'center',
dataIndex : 'COLUMN1',
editable : false,
header : '列名1',
sortable : true,
width : 100
}, {
xtype : 'gridcolumn',
align : 'center',
dataIndex : 'COLUMN2',
editable : false,
header : '列名2',
sortable : true,
width : 100
}, {
xtype : 'gridcolumn',
align : 'center',
dataIndex : 'COLUMN3',
editable : false,
header : '列名3',
sortable : true,
width : 100
}, {
xtype : 'gridcolumn',
align : 'center',
dataIndex : 'COLUMN4',
id : 'colidx1',
editable : false,
header : '列名4',
sortable : true,
width : 100
}, {
xtype : 'gridcolumn',
align : 'center',
dataIndex : 'COLUMN5',
hidden : true,
sortable : true
}],
bbar : {
xtype : 'paging',
autoShow : true,
displayInfo : true,
pageSize : 10,
store : 'test_store'
},
tbar : [{
text : '新增',
iconCls : 'icon-add',
id : 'btn_mxxz'
}, '-', {
text : '修改',
iconCls : 'icon-edit',
id : 'btn_mxxg'
}, '-', {
text : '刪除',
iconCls : 'icon-delete',
id : 'btn_mxsc'
}]
}
JsonStore的代碼就不貼出來了。接下來看看如何實現(xiàn)垂直居中了。
實現(xiàn)思路:通過獲取DOM節(jié)點(diǎn)方式,獲取到表格內(nèi)所有的TD,設(shè)置需要居中的TD的 cssText的值為:'text-align:center;lineheight:130px;vertical-align:center;'
實現(xiàn)依據(jù):Ext中GridPanel容器最終是生成DIV標(biāo)簽來渲染的,其中我們所看到的每一行記錄,比如:“測試項,0,20”這一行數(shù)據(jù)就是被“包”在一個div內(nèi)的一個table。只要我們根據(jù)Ext的生成規(guī)則找到該table,就可以操作其td元素了。
如圖:

實現(xiàn)過程如下:
復(fù)制代碼 代碼如下:
Ext.getCmp("grid_jglb").getStore().on('load',setTdCls);//設(shè)置表格加載數(shù)據(jù)完畢后,更改表格TD樣式為垂直居中
function setTdCls(){
var gridJglb=document.getElementById("grid_jglb");
var tables = gridJglb.getElementsByTagName("table");//找到每個表格
for(var k = 0; k < tables.length; k++){
var tableV=tables[k];
if(tableV.className=="x-grid3-row-table"){
var trs=tables[k].getElementsByTagName("tr");//找到每個tr
for(var i = 0;i < trs.length;i++){
var tds=trs[i].getElementsByTagName("td");//找到每個TD
for(var j = 1;j<tds.length;j++){
tds[j].style.cssText="width:202px;text-align:center;line-height:130px;vertical-align:center;";
}
}
};
}
}
您可能感興趣的文章:
- ExtJs中g(shù)ridpanel分組后組名排序?qū)嵗a
- Extjs4實現(xiàn)兩個GridPanel之間數(shù)據(jù)拖拽功能具體方法
- Extjs4 GridPanel 的幾種樣式使用介紹
- Extjs4 GridPanel的主要配置參數(shù)詳細(xì)介紹
- Extjs中的GridPanel隱藏列會顯示在menuDisabled中解決方法
- Extjs EditorGridPanel中ComboBox列的顯示問題
- Extjs gridpanel 出現(xiàn)橫向滾動條問題的解決方法
- ExtJs GridPanel簡單的增刪改實現(xiàn)代碼
- ExtJS 2.0 GridPanel基本表格簡明教程
- ExtJS GridPanel 根據(jù)條件改變字體顏色
- JavaScript的Ext JS框架中的GridPanel組件使用指南
相關(guān)文章
ExtJS4如何自動生成控制grid的列顯示、隱藏的checkbox
需要做一個控制grid列顯示的checkboxgroup,雖然EXTJS4中的gridpanel自帶列表可以來控制列的顯示隱藏,需要的朋友可以參考下2014-05-05關(guān)于viewport,Ext.panel和Ext.form.panel的關(guān)系
那個深入淺出ext作者比我還懶 viewport存放Ext.panel對象,其容器中的成員可以以borderlayout方式布局2009-05-05解決Extjs4中form表單提交后無法進(jìn)入success函數(shù)問題
form表單提交后無法進(jìn)入success函數(shù)的問題,很是常見,下面有個不錯的解決方法,感興趣的朋友可以參考下2013-11-11ExtJS如何設(shè)置與獲取radio控件的選取狀態(tài)
radio控件的選取狀態(tài)如何設(shè)置與獲取,下面使用ExtJS來簡單實現(xiàn)下,感興趣的朋友可以參考下2014-01-01Extjs407 getValue()和getRawValue()區(qū)別介紹
mydate.getvalue() 返回的是對象;mydate.getRawValue() 返回的是該控件的顯示值,不知道的朋友可以參考下哈2013-05-05EXTjs4.0的store的findRecord的BUG演示代碼
EXTjs4.0 的store的findRecord的BUG:當(dāng)判斷ID=1的時候,遇到1開頭的ID的時候,這個時候就判斷出問題了,有類似問題的朋友可以了解下哈2013-06-06關(guān)于extjs4如何獲取grid修改后的數(shù)據(jù)的問題
如何獲取grid修改后的數(shù)據(jù)問題,下面是API的描述??梢垣@取各種值,感興趣的朋友可以參考下2013-08-08