ExtJS Grid 换行后的最后一列太窄,暂时解决方法

关键字: extjs grid 换行 列宽

首先是cell内容自动换行,在官方FAQ那提到是加一句CSS:

 

Html代码 复制代码
  1. .x-grid3-cell-inner {   
  2.       /*内容长的时候换行*/   
  3.       white-space:normal !important;   
  4. }  
.x-grid3-cell-inner {
      /*内容长的时候换行*/
      white-space:normal !important;
}
 

其次,Grid的某几列都指定了宽度,就剩下一列(如图中的"内容")是让它自适应的.

 

 

Js代码 复制代码
  1. var cm = new Ext.grid.ColumnModel([   
  2.       sm,   
  3.       {   
  4.         header:'名称',   
  5.         dataIndex:'alarmName',   
  6.         //renderer:this.simpleRenderer,   
  7.         width:40,   
  8.         sortable:true  
  9.       },{   
  10.         header:'对象',   
  11.         dataIndex:'node',   
  12.         renderer:function(value,meta,record){   
  13.           var nodeType = Ext.util.Format.uppercase(record.get('nodeType'));   
  14.           if(['BSC','MSC','MGW','GGSN','SGSN'].indexOf(nodeType)!=-1){   
  15.             meta.css = 'netcell';   
  16.             meta.attr = String.format(' netcell="{0}" netcellType="{1}" ',record.get('node'),nodeType);   
  17.           }   
  18.           return value;   
  19.         },   
  20.         tooltip:'鼠标悬浮可查看相关网元',   
  21.         css:"text-align:center;",   
  22.         width:20,   
  23.         sortable:true  
  24.       },{   
  25.         header:'内容',   
  26.         dataIndex:'alarmContent',   
  27.         //renderer:this.simpleRenderer,   
  28.         sortable:true  
  29.       },{   
  30.         header:'最早发生时间',   
  31.         dataIndex:'firstTime',   
  32.         type:'date',   
  33.         renderer:Ext.util.Format.dateRenderer('y-m-d H:i:s'),   
  34.         css:"text-align:center;",   
  35.         width:30,   
  36.         sortable:true  
  37.       },{   
  38.         header:'最后发生时间',   
  39.         dataIndex:'createTime',   
  40.         type:'date',   
  41.         renderer:Ext.util.Format.dateRenderer('y-m-d H:i:s'),   
  42.         css:"text-align:center;",   
  43.         width:30,   
  44.         sortable:true  
  45.       },{   
  46.         header:'次数',   
  47.         dataIndex:'stackTimes',   
  48.         //renderer:this.simpleRenderer,   
  49.         css:"text-align:center",   
  50.         width:12,   
  51.         sortable:true  
  52.       },{   
  53.         header:'操作',   
  54.         dataIndex:'node',   
  55.         renderer:function(value,meta,record){   
  56.           var resultStr = "<div class='controlBtn'><a href='javascript:void(0);' class='alarm_detail'>详细</a> | <a href='javascript:void(0);' class='alarm_check'>签阅</a> | <a href='javascript:void(0);'  class='alarm_delete'>删除</a></div>";   
  57.           return resultStr;   
  58.         },   
  59.         css:"text-align:center;",   
  60.         width:30,   
  61.         sortable:false  
  62.       }   
  63.     ]);  
 

 

Js代码 复制代码
  1. var grid = new Ext.grid.GridPanel({   
  2.       //title:'::网元告警&关注事件(近24小时)::',   
  3.       region:'center',   
  4.       store:store,   
  5.       enableColumnMove: true,   
  6.       enableHdMenu: true,   
  7.       autoScroll: true,   
  8.       cm:cm,   
  9.       sm:sm,   
  10.       columnLines:true,   
  11.       trackMouseOver:false,   
  12.       //minColumnWidth:11,   
  13.       //loadMask:'载入中...',   
  14.       viewConfig:{   
  15.         forceFit: true,   
  16.         deferEmptyText: true,   
  17.         emptyText: "<div>业务运行正常</div>",   
  18.         enableRowBody:true,   
  19.         getRowClass: function(record, rowIndex, rowParams, store){   
  20.           if(record.get('alarmType')==Elvis.NetCellAlarmMonitor.ALARM_TYPE_CALLLIMIT_EVENT){   
  21.             return 'alarm_row_event';   
  22.           }else{   
  23.             return 'alarm_row_alarm';   
  24.           }   
  25.         }   
  26.       }   
  27.     });  

 

在IE一切正常,在FF3下,最右边的操作老溢出。如下图

(图略)

 

换了autoExpandColumn感觉不管用.

官方论坛上问了,回复说是forceFit:true后,column里面设置的无效.

 

今天看了下GridView的源码, fitColumns() 里面有一句cm.setColumnWidth(i, Math.max(this.grid.minColumnWidth, Math.floor(w + w*frac)), true);

于是试了下在grid里面加一句minColumnWidth:11,结果发现OK了...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值