1

使用 jQuery 和 AJAX 从 SQL 数据库中检索数据。我正在考虑使用 jqGrid(如果可能的话)。检索数据时,根据其优先级和是否必须确认,它可以在每行显示 3 个选项中的 1 个:下拉框(要求用户在其中选择一个选项),提交按钮(确认已收到),或者它可以说“不需要”。一般来说,它看起来像下图:

动作面板

AJAX 调用是有间隔的,每 30 秒刷新一次。

必须发生的是当用户单击/选择它们时需要操作的项目,将更新数据源并使用他们的响应和他们响应的日期时间更新行。

可以有多行带有下拉框,也可以有多行带有提交按钮。一旦某个项目得到响应(或者如果什么都不需要),该消息将在下一次刷新时消失(被过滤掉)。

其他信息 - 下拉列表中的项目对于每一行都是相同的。此外,如果用户打开了下拉菜单,则间隔将停止,然后在做出选择后重新开始(下拉框打开时网格不应刷新)。

可以使用 jqGrid 完成这样的事情,或者使用另一个 jQuery 插件更好/更容易地完成,还是应该在 HTML 中完成(使用 jQuery)?我会很感激任何意见。

编辑

我现在正在测试网格(仅显示数据)以查看它是如何使用setInterval. 我使用下面的代码来设置间隔。

iLoad = setInterval(function(){
    mytime = new Date();
    mytime = new Date(mytime - 60000);
    mytimeString = ('00'+(mytime.getHours())).slice(-2) +":"+('00' + (mytime.getMinutes())).slice(-2) + ":"+ ('00' + (mytime.getSeconds())).slice(-2) + "."+ ('000' + (mytime.getMilliseconds())).slice(-3);
    var cday = new Date();
    var curday = ('00'+(cday.getdate())).slice(-2);
    var curmon = ('00'+(cday.getMonth())).slice(-2);
    var curyr = cday.getFullYear();
    var currdate = curyr +"-"+curmon+"-"+curday;
    gridload(id, mytimeString, currdate);
    }, 60000);

我注意到,在第一次调用它时,网格GET在数据源上执行了 a ,但是之后,当间隔再次触发时,它并​​没有执行 new GET。我放入了一些日志显示,显示它正在调用该函数,但网格代码中的显示(在 中loadComplete)仅在第一次触发。我发送的时间是从我传递的时间参数开始要求桌面上的任何新内容,所以我期待它每次都会触发。

设置间隔的代码之前已经获取了相同的信息并将其放入 HTML 表中,所以我知道间隔正在按预期触发。

我没有设置任何东西来缓存或在网格上加载一次。我错过了什么?为什么间隔不让它对GET数据进行后续处理?

4

1 回答 1

1

是的,这可以使用 jqGrid 或其他数据网格选项(例如SlickGrid )来完成。

使用 jqGrid,您将需要使用自定义格式化程序来对您想要的单元格进行特定的自定义。

于 2013-06-19T15:01:08.280 回答