ExtJs设置GridPanel表格文本垂直居中示例

  业务场景,需要实现最终效果图如下:

ExtJs设置GridPanel表格文本垂直居中示例

  GridPanel代码如下配置:

  

复制代码 代码如下:

  {

  xtype : 'grid',

  id : 'grid_jglb',

  frame : true,

  region : 'center',

  title : '列表详细信息',

  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的代码就不贴出来了。接下来看看如何实现垂直居中了。

  实现思路:通过获取DOM节点方式,获取到表格内所有的TD,设置需要居中的TD的 cssText的值为:'text-align:center;lineheight:130px;vertical-align:center;'

  实现依据:Ext中GridPanel容器最终是生成DIV标签来渲染的,其中我们所看到的每一行记录,比如:“测试项,0,20”这一行数据就是被“包”在一个div内的一个table。只要我们根据Ext的生成规则找到该table,就可以操作其td元素了。

  如图:

ExtJs设置GridPanel表格文本垂直居中示例

  实现过程如下:

  

复制代码 代码如下:

  Ext.getCmp("grid_jglb").getStore().on('load',setTdCls);//设置表格加载数据完毕后,更改表格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;";

  }

  }

  };

  }

  }