首先是cell内容自动换行,在官方FAQ那提到是加一句CSS:
.x-grid3-cell-inner {
/*内容长的时候换行*/
white-space:normal !important;
}
其次,Grid的某几列都指定了宽度,就剩下一列(如图中的"内容")是让它自适应的.
var cm = new Ext.grid.ColumnModel([ sm, { header:'名称', dataIndex:'alarmName', //renderer:this.simpleRenderer, width:40, sortable:true },{ header:'对象', dataIndex:'node', renderer:function(value,meta,record){ var nodeType = Ext.util.Format.uppercase(record.get('nodeType')); if(['BSC','MSC','MGW','GGSN','SGSN'].indexOf(nodeType)!=-1){ meta.css = 'netcell'; meta.attr = String.format(' netcell="{0}" netcellType="{1}" ',record.get('node'),nodeType); } return value; }, tooltip:'鼠标悬浮可查看相关网元', css:"text-align:center;", width:20, sortable:true },{ header:'内容', dataIndex:'alarmContent', //renderer:this.simpleRenderer, sortable:true },{ header:'最早发生时间', dataIndex:'firstTime', type:'date', renderer:Ext.util.Format.dateRenderer('y-m-d H:i:s'), css:"text-align:center;", width:30, sortable:true },{ header:'最后发生时间', dataIndex:'createTime', type:'date', renderer:Ext.util.Format.dateRenderer('y-m-d H:i:s'), css:"text-align:center;", width:30, sortable:true },{ header:'次数', dataIndex:'stackTimes', //renderer:this.simpleRenderer, css:"text-align:center", width:12, sortable:true },{ header:'操作', dataIndex:'node', renderer:function(value,meta,record){ 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>"; return resultStr; }, css:"text-align:center;", width:30, sortable:false } ]);
var grid = new Ext.grid.GridPanel({ //title:'::网元告警&关注事件(近24小时)::', region:'center', store:store, enableColumnMove: true, enableHdMenu: true, autoScroll: true, cm:cm, sm:sm, columnLines:true, trackMouseOver:false, //minColumnWidth:11, //loadMask:'载入中...', viewConfig:{ forceFit: true, deferEmptyText: true, emptyText: "<div>业务运行正常</div>", enableRowBody:true, getRowClass: function(record, rowIndex, rowParams, store){ if(record.get('alarmType')==Elvis.NetCellAlarmMonitor.ALARM_TYPE_CALLLIMIT_EVENT){ return 'alarm_row_event'; }else{ return 'alarm_row_alarm'; } } } });
在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了...
先记录下,回头再细看一下这个函数吧...呵呵...