ExtJs設(shè)置GridPanel表格文本垂直居中示例
更新時間:2013年07月15日 16:49:49 作者:
本文為大家詳細(xì)介紹下ExtJs如何設(shè)置GridPanel表格文本垂直居中,具體實(shí)現(xiàn)代碼及截圖如下,感興趣的朋友可以參考下哈,希望對大家有所幫助
業(yè)務(wù)場景,需要實(shí)現(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的代碼就不貼出來了。接下來看看如何實(shí)現(xiàn)垂直居中了。
實(shí)現(xiàn)思路:通過獲取DOM節(jié)點(diǎn)方式,獲取到表格內(nèi)所有的TD,設(shè)置需要居中的TD的 cssText的值為:'text-align:center;lineheight:130px;vertical-align:center;'
實(shí)現(xiàn)依據(jù):Ext中GridPanel容器最終是生成DIV標(biāo)簽來渲染的,其中我們所看到的每一行記錄,比如:“測試項(xiàng),0,20”這一行數(shù)據(jù)就是被“包”在一個div內(nèi)的一個table。只要我們根據(jù)Ext的生成規(guī)則找到該table,就可以操作其td元素了。
如圖:
實(shí)現(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的代碼就不貼出來了。接下來看看如何實(shí)現(xiàn)垂直居中了。
實(shí)現(xiàn)思路:通過獲取DOM節(jié)點(diǎn)方式,獲取到表格內(nèi)所有的TD,設(shè)置需要居中的TD的 cssText的值為:'text-align:center;lineheight:130px;vertical-align:center;'
實(shí)現(xiàn)依據(jù):Ext中GridPanel容器最終是生成DIV標(biāo)簽來渲染的,其中我們所看到的每一行記錄,比如:“測試項(xiàng),0,20”這一行數(shù)據(jù)就是被“包”在一個div內(nèi)的一個table。只要我們根據(jù)Ext的生成規(guī)則找到該table,就可以操作其td元素了。
如圖:
實(shí)現(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實(shí)現(xiàn)兩個GridPanel之間數(shù)據(jù)拖拽功能具體方法
- Extjs4 GridPanel 的幾種樣式使用介紹
- Extjs4 GridPanel的主要配置參數(shù)詳細(xì)介紹
- Extjs中的GridPanel隱藏列會顯示在menuDisabled中解決方法
- Extjs EditorGridPanel中ComboBox列的顯示問題
- Extjs gridpanel 出現(xiàn)橫向滾動條問題的解決方法
- ExtJs GridPanel簡單的增刪改實(shí)現(xiàn)代碼
- ExtJS 2.0 GridPanel基本表格簡明教程
- ExtJS GridPanel 根據(jù)條件改變字體顏色
- JavaScript的Ext JS框架中的GridPanel組件使用指南
相關(guān)文章
Extjs優(yōu)化(一)刪除冗余代碼提高運(yùn)行速度
Extjs 本身是一個加載慢的JS框架,這次來寫寫怎么減少冗余代碼,也是提高運(yùn)行速度,感興趣的朋友可以參考下哈,希望可以幫助到你2013-04-04
Ext GridPanel加載完數(shù)據(jù)后進(jìn)行操作示例代碼
Ext GridPanel加載完數(shù)據(jù)后進(jìn)行操作,比如load數(shù)據(jù)之后選定某些行數(shù)據(jù),下面有個示例,需要的朋友可以參考下2014-06-06
Ext4.2的Ext.grid.plugin.RowExpander無法觸發(fā)事件解決辦法
這篇文章主要介紹了Ext4.2的Ext.grid.plugin.RowExpander無法觸發(fā)事件解決辦法,本文中的事件指collapsebody和expandbody事件,需要的朋友可以參考下2014-08-08
ExtJs 學(xué)習(xí)筆記 Hello World!
最近學(xué)ajax,接觸到了Extjs這個強(qiáng)大的框架。我想通過我的學(xué)習(xí)筆記,最后可以讓大家上手在項(xiàng)目中使用Ext。首先我會寫一些基本的用于入門Ext的文章,打好基礎(chǔ)是很重要的。2008-12-12
ANT 壓縮(去掉空格/注釋)JS文件可提高js運(yùn)行速度
在解決這個有很多優(yōu)化方法,今天來說其中一種,那就是在Ant腳本打包的時候,把js中空格、注釋去掉、以及合并,合并今天不說了,還未實(shí)現(xiàn)這個,在研究中2013-04-04

