Flexgrid中的sortable设为false的时候abbr属性也不存在的原因及解决办法

当对表格某一列进行如下设置的时候

{
    display: 'ID',
    name: 'ORDER_ID',
    width: 40,
    sortable: false,
    align: 'left'
}

会发现该列将没有abbr属性

解决该问题的方法是

1.打开flexgrid.js

2.找到这样一段代码

if (cm.name && cm.sortable) {
    $(th).attr('abbr', cm.name);
}

 将其改为

if (cm.name) {
    $(th).attr('abbr', cm.name);
}

这样所有的栏目都会有abbr属性,但是同时所有的列(即使设置sortable属性的值为false)还是会显示排序效果,如何将所有的排序效果删除?

找到这样一段代码

changeSort: function (th) { //change sortorder
    if (this.loading) {
        return true;
    }
    $(g.nDiv).hide();
    $(g.nBtn).hide();
    if (p.sortname == $(th).attr('abbr')) {
        if (p.sortorder == 'asc') {
        p.sortorder = 'desc';
        } else {
            p.sortorder = 'asc';
        }
    }
    $(th).addClass('sorted').siblings().removeClass('sorted');
    $('.sdesc', this.hDiv).removeClass('sdesc');
    $('.sasc', this.hDiv).removeClass('sasc');
    $('div', th).addClass('s' + p.sortorder);
    p.sortname = $(th).attr('abbr');
    if (p.onChangeSort) {
        p.onChangeSort(p.sortname, p.sortorder);
    } else {
        this.populate();
    }
},                

 将其删除,然后将后面的调用了该函数发代码删除<有一个地方调用了该方法g.changeSort(this);>

即可解决

 

posted @ 2014-09-09 14:52  大头鬼  阅读(441)  评论(0编辑  收藏  举报