首页 > 代码库 > Flexgrid中的sortable设为false的时候abbr属性也不存在的原因及解决办法

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);>

即可解决

 

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