• 设为首页
  • 收藏本站
  • 积分充值
  • VIP赞助
  • 手机版
  • 微博
  • 微信
    微信公众号 添加方式:
    1:搜索微信号(888888
    2:扫描左侧二维码
  • 快捷导航
    福建二哥 门户 查看主题

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

    发布者: 姬7089 | 发布时间: 2025-8-13 16:52| 查看数: 74| 评论数: 0|帖子模式

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

    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元素了。
    如图:

    实现过程如下:

    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.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;";
    }
    }
    };
    }
    }

    来源:互联网
    免责声明:如果侵犯了您的权益,请联系站长(1277306191@qq.com),我们会及时删除侵权内容,谢谢合作!

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    ×

    最新评论

    QQ Archiver 手机版 小黑屋 福建二哥 ( 闽ICP备2022004717号|闽公网安备35052402000345号 )

    Powered by Discuz! X3.5 © 2001-2023

    快速回复 返回顶部 返回列表