Easyui关于排序问题,为什么无法使用自定义函数?

yutaozj85 2018-07-17 01:44:07
在弄一个jQuery Easyui的datagrid列排序问题,弄得非常郁闷,麻烦大神帮我看下哪里出错。
主要代码如下:


$("#dg").datagrid({
remoteSort: false,
columns: [[
{ field: 'SKU', title: "SKU", align: 'left' },
{ field: '销售数量', title: '销售数量', align: 'center', sortable: true, sorter: function (a, b) { return parseFloat(a) > parseFloat(b) ? 1 : -1;} },
{ field: '在售库存', title: '在售库存', align: 'center' },
{ field: '在途库存', title: '在途库存', align: 'center' },
{ field: '库存日期', title: '库存日期', align: 'center', formatter: colFormatDate }
]]
});


以上这样的代码是可以的,可以实现需要的效果,点击销售数量列可以实现排序。

不过嫌这样不够简洁,所以把排序函数另外写到统一的JS文件里,比如:hanshu.js,函数如下:

function paixu(a, b){
return parseFloat(a) > parseFloat(b) ? 1 : -1;
}


然后在网页头部引用<script type="text/javascript" src="hanshu.js"></script>,然后修改下datagrid的代码:
{ field: '销售数量', title: '销售数量', align: 'center', sortable: true, sorter: paixu },


为什么这样就不行了?哪里出错了?(sorter: paixu 和 sorter: "paixu")这样的方式都试过,都出错。
...全文
145 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2018-07-19
  • 打赏
  • 举报
回复
引用 3 楼 apollokk 的回复:
可能是你的脚本还没加载就生成datagrid了,试下调整顺序,或者用

$(function(){
$('#dg').datagrid(.....);
});


我的格式化formatter函数就是这样子的摆放顺序,为什么又可以顺利执行。
「已注销」 2018-07-19
  • 打赏
  • 举报
回复
引用 3 楼 apollokk 的回复:
可能是你的脚本还没加载就生成datagrid了,试下调整顺序,或者用

$(function(){
$('#dg').datagrid(.....);
});


你说的对,果然是这样,是顺序问题。

我原先的顺序是这样的:master模板页的头部引用js函数文件,然后在子页面的展示区加载datagrid,在columns属性里写sorter:paixu,难道这样子的顺序并不是先加载js文件吗?

刷新了我的观念。。。。正确的做法应该怎么样?才使代码易于管理和归类。
Hello World, 2018-07-17
  • 打赏
  • 举报
回复
可能是你的脚本还没加载就生成datagrid了,试下调整顺序,或者用

$(function(){
$('#dg').datagrid(.....);
});
「已注销」 2018-07-17
  • 打赏
  • 举报
回复
引用 1 楼 usecf 的回复:
你试试这样写
(sorter: function(){
paixu();
}

这样不行,参数都没有了,反正加了参数也不对。
usecf 2018-07-17
  • 打赏
  • 举报
回复
你试试这样写
(sorter: function(){
paixu();
}

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧