实现Ext的grid单元格数据过长换行显示

Ext实现页面表单Enter全键盘导航


在web软件中,很多时候我们希望提供用户一个键盘表单导航的功能,使用Enter代替tab实现表单的导航。
思路基本就是遍历页面的input字段,为每个表单项增加一个enter键的监听,如果出发了enter键则程序在触发tab键即可。

下面是在ext中实现的键盘导航的代码。/**
* 表单全键盘导航功能
* index:可选参数,用于设定页面加载完成后默认获取焦点的表单项,支持索引号和id/dom类型参数传入。
*/
var keyNav =
function(index){
   
var run=function(){
        
var all=Ext.DomQuery.select('input[type!=hidden]'); //查找所有非隐藏的录入向(ext中select都是用input模拟的所以这里不用找select)
        Ext.each(all,function(o,i,all){ //遍历并添加enter的监听
            Ext.get(o).addKeyMap({
                key :
13,
                fn :
function() {
                    
try{all[i+1].focus()}catch(e){event.keyCode=9}
                    
if(all[i+1]&&/button|reset|submit/.test(all[i+1].type)) all[i+1].click();   //如果是按钮则触发click事件

return
true;
                }
            })
        });
        document.body.focus();  
//使页面获取焦点,否则下面设定默认焦点的功能有时不灵验

try{
            
var el;
            
if(typeof eval(xFocus)=='object'){  //如果传入的是id或dom节点
                el=Ext.getDom(xFocus).tagName=='input'?Ext.getDom(xFocus):Ext.get(xFocus).first('input',true);  //找到input框
            }else{
                el
=all[xFocus||0];  //通过索引号找
            }
            el.focus();
        }
catch(e){}
    }
    Ext.isReady
?run():Ext.onReady(run);  //页面加载完成后添加表单导航
}



实现Ext的grid单元格数据过长换行显示
Grid的单元格对数据显示都是采用省略的办法来处理的,即内容长度超过单元格长度时自动隐藏超过的部分并使用省略号...来显示,这样虽然也很好,但有时我们可能还是希望它能完全的显示出来,即采用换行显示。

最简单的办法莫过于直接修改ext-all.css,但俺一般不像侵入ext的源文件,那就自己用别的方法实现吧。
方法其实也很简单,判断该grid是否需要换行显示。如果是则加上这段代码:
grid.store.on('load', function() {
    gridEl.select(
"table[class=x-grid3-row-table]").each(function(x) {
        x.addClass('x
-grid3-cell-text-visible');
    });
});


CSS文件内容:

.x-grid3-cell-text-visible .x-grid3-cell-inner{overflow:visible;padding:3px 3px 3px 5px;white-space:normal;}

http://www.cnitblog.com/yemoo/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值