ajax动态获取datagrid的列名问题

weixin_37547931 2017-02-16 07:37:08
columns: [[
{ field: 'vDate', title: '故障时间', width: 150 },
{ field: 'Description', title: '故障描述', width: 500 }
]]
想把columns里的field跟title的内容都在数据库里,然后通过ajax调用后台方法,达到动态显示列名的目的。
关键代码如下:
        
$.ajax({
type: "POST",
url: "AmmeterFaultQuery.aspx/GetTitleNameData",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var m_msg = JSON.parse(msg.d);
if (m_msg.total == 0) {
alert("错误!");
} else {
var cols = [];
for (var i = 0; i < m_msg.rows.length; i++) {
var field = m_msg.rows[i];
cols.push({ filed: field.titleName, title: field.chineseName, width: 500 });
}
$("#Windows_Report").datagrid({
striped: true,//设置为 true,则把行条纹化。(即奇偶行使用不同背景色)
rownumbers: true,//设置为 true,则显示带有行号的列。
singleSelect: true,//设置为 true,则只允许选中一行。
fit: true,
pagination: true,//设置为 true,则在数据网格(datagrid)底部显示分页工具栏。
pageSize: 50,//当设置了 pagination 属性时,初始化页面尺寸。
toolbar: '#toolbar_ReportTemplate',//数据网格(datagrid)面板的头部工具栏
columns: [cols]
});
}

}
});

调试的时候一直到datagrid之前都是自己想要的结果,没什么大问题。可是火狐运行之后,列名是出来了,可是查询的内容没了

IE运行是直接报错:未经处理的异常,行 8603,列 1,在 http://localhost:3441/lib/ealib/jquery.easyui.min.js 中
跳到if(String(col.width||"").indexOf("%")>=0){ 这一行
0x800a138f - JavaScript 运行时错误: 无法获取未定义或 null 引用的属性“width”
有没有人能帮我看看问题出在哪,datagrid里的内容怎么出不来了?
首先确定这个时间段是有数据库是有数据的,然后查询那也套用了一个ajax,但是这个ajax是没问题的,之前column那一段代码没改之前是能查询出来数据的。

...全文
377 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
树成 2019-07-31
  • 打赏
  • 举报
回复
这个功能挺鸡肋的,我以前也干过同样的事情,比你还干的好,其实最后根本用不上。 实际开发业务的过程中,列会表现得非常复杂,例如排序,筛选和查询的公牛,例如现实图片,链接甚至会是一些复杂的视图。在数据库中定义会非常麻烦。 在实际业务中,客户的数据可能会非常庞大,你把这些元数据定义在数据库中,其实逻辑上就会让数据结构变得非常复杂,逻辑复杂会让计算变得复杂,小数据体校不明显,而大量数据以后,你会发现你系统的执行效率非常低下。 类似的功能只适合你自己玩,并不能推广到公司的其他人,因为这个功能看似减轻了工作量,其实无形中加大学习成本,因为你在共有的组件上增加了自己的一套逻辑,你要让别人来接受你的逻辑势必你要花时间去教会别人,为了不耽误你过多时间,你可能还要出说明文档之类的东西,即使这样别人还不一定学得会,还要你手把手教,更何况你个人做出来的东西没有经过完善的测试和正式的系统检验,肯定一大堆bug,在投入正式的生产系统中会问题重重。 把类似的定义迁入数据库,看似可配置和,其实增大了修改成本,因为用户是不可能去修改这类定义数据的,即使可以通过某些模块来更改,但是他们依旧不懂,一个普通程序员也不好改类似的东西,如果是直接写在页面上,他们可以去查现成的easyui或者extjs的文档,但是如果你是写在数据库里面,他们不得不弄懂你的代码逻辑来修改对应模块,由于你的模块可能bug重重,可能面对一些特殊情况会出现无法修改或者不支持对应功能的情况。 类似的东西可以尝试玩玩,懂得原理即可,千万不要觉得自己NB了可以一劳永逸的做个框架或者组件出来。
自然框架 2019-07-30
  • 打赏
  • 举报
回复
columns: [cols] cols 本身不就是数组吗?是datagrid 要求这么写的吗?
  • 打赏
  • 举报
回复
建议自己用js 实现 否则你水平永远起不来
清春飞扬 2019-07-25
  • 打赏
  • 举报
回复
weixin_37547931 哥们,你这问题是怎么解决的
  • 打赏
  • 举报
回复
引用 1 楼 qq_35991157 的回复:
后来怎么解决的,我也遇到了同样的问题?
自己好好检查配置名称都对了没有,楼主这个field都拼写错了 cols.push({ filed: field.titleName
qq_35991157 2017-08-01
  • 打赏
  • 举报
回复
后来怎么解决的,我也遇到了同样的问题?

87,993

社区成员

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

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