easyui datagrid 绑定从后台得到的复杂的特殊数据结构
由于项目需要,从后台得到的数据统一为了类似{state:xxx,data:xxx,message:xxx}类型
但是easyui datagrid却只认{total:xxx,rows:xxx}。。。所以,整个前台都报错了,报错了就要解决,解决的过程中一共试过3中方式
1,datagrid不直接指定数据源,而是单独的ajax得到数据,然后在loadData绑进去,但是这样太麻烦了,不合理,显然不适用
2,重写ajax在得到数据的时候处理一下,网上找了段大神的代码就拿来用了,但是这样写灵活性不好,只能适用部分验证功能
(function ($) { var _ajax = $.ajax; $.ajax = function (opt) { var fn = { error: function (XMLHttpRequest, textStatus, errorThrown) { }, success: function (data, textStatus) { } } if (opt.error) { fn.error = opt.error; } if (opt.success) { fn.success = opt.success; } var _opt = $.extend(opt, { error: function (XMLHttpRequest, textStatus, errorThrown) { fn.error(XMLHttpRequest, textStatus, errorThrown); }, success: function (data, textStatus, xhr) { fn.success(data.data, textStatus); } }); _ajax(_opt); }; })(jQuery);
3,直接用easyui的数据表格属性loadFilter。。。。。(尼玛,折腾了2个小时才发现easyui自己就有数据过滤功能。。。。坑爹啊)
<script type="text/javascript"> $(function () { $('#dgUser').datagrid({ url: 'index.ashx', columns: [[ { title: 'UserID', field: 'UserID', width: 100, align: 'center' }, { title: 'UserName', field: 'UserName', width: 100, align: 'center' } ]], loadFilter: function (data) { return data.data; } }); }); </script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~