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);>
即可解决