是否应该将jqGrid的addJSONData用法替换为setGridParam()和trigger('reloadGrid')的用法?

2024-04-29

我最近写了一个问题的答案“jqGrid 在更新表/自定义更新时显示默认“正在加载”消息 https://stackoverflow.com/questions/2614643/jqgrid-display-default-loading-message-when-updating-a-table-on-custom-update/”。在写答案时我想:他为什么使用添加JSON数据()用于刷新网格中的数据而不是更改相对于的 URL 的函数设置网格参数()并刷新 jqGrid 数据触发器('重新加载网格')?一开始我想推荐使用'重新加载网格',但经过思考,我明白我不太确定最好的方法是什么。至少,我无法用两句话解释为什么我更喜欢第二种方式。所以我认为这可能是一个有趣的讨论主题。

确切地说:我们有一个典型的情况。我们有一个网页,其中至少有一个 jqGrid 和一些其他控件,例如组合框(选择)、复选框等,这使用户可以更改 jqGrid 中显示的信息范围。通常我们定义一些事件处理程序,例如jQuery("#selector").change(myRefresh).keyup(myKeyRefresh)我们需要根据用户的选择重新加载 jqGrid 容器。

在读取并分析其他用户输入的信息后,我们可以通过至少两种方式刷新 jqGrid 容器:

  1. 拨打电话$.ajax()手册,然后在成功或完整句柄中$.ajax call jQuery.parseJSON() (or eval)然后调用添加JSON数据jqGrid的功能。我在 stackoverflow.com 上找到了很多使用的示例添加JSON数据.
  2. Update urljqGrid 根据用户的输入,重置当前page数字为 1 并可选择更改caption网格的。所有这些都可以针对设置网格参数(),并且可选地设置标题()jqGrid 方法。最后调用网格的触发器('重新加载网格')功能。构建url顺便说一句,我主要使用 jQuery.param 函数来确保我已正确包装所有 url 参数编码URI组件.

我希望我们讨论一下这两种方式的优点和缺点。我目前使用第二种方式,所以我将从这种方式的优点开始。

可以说:我调用现有的Web服务,将接收到的数据转换为jqGrid格式并调用添加JSON数据。这就是我使用的原因添加JSON数据 method!

好吧,我会选择其他方式。 jqGrid可以直接调用Web Service并将结果填充到网格中。 jqGrid 有很多选项,允许您自定义此过程。

首先,可以删除或重命名发送到服务器的任何标准参数prmNamesjqGrid 的选项或添加任何更多附加参数postData选项(参见http://www.trirand.com/jqgridwiki/doku.php?id=wiki:选项 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options)。在 jqGrid 做出相应的操作之前,可以立即修改所有构造的参数$.ajax通过定义请求序列化GridData()函数(jqGrid 的又一个选项)。不仅如此,人们还可以改变每一项$.ajax参数通过设置ajaxGrid选项jqGrid 的选项。我用ajaxGridOptions: {contentType: "application/json"}例如作为一般设置$.jgrid.defaults. The ajaxGrid选项选项非常强大。相对于该ajaxGrid选项选项一可以重新定义任何参数$.ajax通过 jqGrid 发送请求,例如error, complete and 发送前事件。我认为定义可能很有趣数据过滤器事件能够对从服务器返回的行数据进行任何修改。

关于使用的另一个论据触发器('重新加载网格')方式是在 AJAX 请求处理期间阻塞 jqGrid。我主要使用参数loadui: 'block'在 JSON 请求发送到服务器期间阻止 jqGrid。关于 jQuery blockUI 插件http://malsup.com/jquery/block/ http://malsup.com/jquery/block/可以仅阻止网页的更多部分,如网格。为此,可以调用:

jQuery('#main').block({ message: '<h1>Die Daten werden vom Server geladen...</h1>' });

在致电之前触发器('重新加载网格')方法和jQuery('#main').unblock()在 - 的里面加载完成 and 加载错误功能。这loadui在这种情况下,选项可以设置为“禁用”。

我的最后一句话:我通常使用以下命令创建 jqGriddatatype设置为“local”而不是“json”,我会调用触发('改变')一些控件(组合框之一)的功能,例如:jQuery("#selector").change(myRefresh).keyup(myKeyRefresh).trigger('change')。 因此我构建了urljqGrid的参数仅在更改句柄内部的一处进行更改datatype到上述内容中的“json”设置网格参数().

所以我不明白为什么这个功能添加JSON数据()应该永远使用。

有人可以使用添加JSON数据()function 向我解释一下它的用法的优点吗?

公平地说,我可以补充一点添加JSON数据()它存在于旧版本的 jqGrid 中,具有我在这里描述的大部分功能。是否应该替换使用添加JSON数据jqGrid 的使用设置网格参数(), and 触发器('重新加载网格')?


我一直在 jqgrid 中使用 addJSONData,但那是 1 年前的事了,从那时起 jqGrid 中的很多事情都发生了变化。

不管怎样,我需要在客户端进行繁重且复杂的 gui 操作(银行共享的东西),我的 Json 数据只是本地的,并作为一些 jkey 点发送到服务器(工作完成)。我有几个 jqgrid(其中一些在其他 jqgrids 中:-))和某种本地浏览器数据存储,这些数据足够小,可以保留在浏览器中,并且足够复杂和移动,通过 ajax IO 在合理的时间内无法使用。

第一个版本使用 Ajax IO,当我遇到锁和等待问题以及大量新的复杂 GUI 问题时,我真的很高兴找到这个 addJSONData 挂钩,并在 jQgrid 之外拥有自己的 ajax 时间线。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否应该将jqGrid的addJSONData用法替换为setGridParam()和trigger('reloadGrid')的用法? 的相关文章

  • Jquery查找值为X的表格单元格

    我正在尝试寻找一个 td 其中值为 5 它是一个日历 因此只有一个 5 值 您可以使用filter https api jquery com filter method td filter function return this text
  • 如何在phonegap应用程序中使用存储在localStorage中的json feed?

    这就是我正在做的 向我的网络服务器发出请求 响应采用 json 格式 使用 jquery 模板在我的应用程序中呈现回调数据 非常简单 就像魅力一样 问题是 我想在本地存储一些数据 这样我的应用程序就不必每次都从服务器获取它 3g 很慢 每笔
  • 在淘汰赛应用程序中使用 setInterval 进行轮询实现?

    我正在尝试使用 setInterval 实现简单的轮询机制 我有一个视图模型如下 define knockout jquery function ko function ViewModel var self this setInterval
  • 匹配数组中的对象并合并

    UPDATE 我有一个名为的对象数组cars包含 li 标签 其中包含有关汽车的属性数据 例如价格 汽车类型等 我的目标是 如果这些汽车符合某些标准 则将它们合并到一个列表中 要求 快速性能 保持相同的汽车数组结构 Main Goal Ma
  • 使用 jQuery 检查输入是否为空

    我有一个表单 我希望填写所有字段 如果单击某个字段然后未填写 我想显示红色背景 这是我的代码 apply form input blur function if input text is empty this parents p addC
  • JQUERY 中用于加载 JQGRID 的选项卡

    我正在使用 jqgrid 制作网格 我想在我的应用程序中创建选项卡 单击选项卡应打开一个网格 选项卡的名称应显示在页面顶部 当我单击另一个选项卡时 它应该加载另一个网格 网格应该加载在同一页面上 并且选项卡也应该始终出现在页面上 我已经创建
  • 使用JQuery检查元素是否有边框?

    所以我正在玩 el css 尝试确定元素是否有边框 我用 css border style solid 设置边框 这是可行的 但实际上它设置了 4 种单独的样式 border right style border left style bo
  • 使用 javascript 将 html 文本渲染为位图,无需服务器端代码

    我需要使用 javascript 代码来转换 html 中的文章 帖子 以便最终用户以位图的形式查看 有没有办法在没有服务器端代码的情况下做到这一点 example p testing text here p 您可以使用例如html2can
  • 使用 jquery 通配符检查 cookie 名称

    我有一个生成动态 cookie 的表单 例如 webform 62 1234356 62 1234356 可以是任意数字 我需要使用一些通配符检查来检查名称以 webform 开头的 cookie 是否存在 下面不起作用 if cookie
  • 在 ASP.NET MVC 4 中使用 jQuery Mobile 1.3 面板时的双滚动条

    我无法弄清楚这一点 将以下代码放入布局页面并在浏览器中查看后 我将显示 2 个垂直滚动条 div div 遇到了类似的问题 并注意到只有在使用我的自定义主题时才出现这种问题 我以错误的顺序将自定义主题添加到页面 这导致了问题 正确的顺序是
  • Javascript 中的线性回归 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想在网络浏览器中用 Javascript 进行最小二乘拟合 目前 用户使用 HTML 文本输入输入数
  • 一个接一个地淡入div

    大家好 我很擅长 HTML 和 CSS 但才刚刚开始接触 jQuery 的皮毛 我希望让 3 个 div 在页面加载时逐渐淡入 到目前为止我有这个 我听说使用 css 将显示设置为 none 对于任何使用非 JavaScript 浏览器的人
  • Jquery 两个字段的时间差(以小时为单位)

    我的表单中有两个字段 用户可以在其中选择输入时间 start time end time 我想在更改这些字段时重新计算另一个字段的值 我想做的是获取两次之间的小时数 例如 如果我的开始时间为 5 30 结束时间为 7 50 我想将结果 2
  • jQuery mobile 中的文本区域高度和宽度?

    我修复了 jQuery mobile 中文本区域元素的高度 并且在纵向中得到了完美的高度和宽度 但在横向中宽度没有放大 谁能帮我 提前致谢 HTML
  • 如何删除除任何特定 id 之外的元素

    假设有一个父 id 其中包含许多元素 我想删除除一个元素之外的所有元素 ex parent id children not id n remove
  • 使用 AJAX 加载部分视图不起作用

    请原谅我 我是 MVC 和 AJAX 的新手 目前我只是提交一个表单 我想使用表单中的数据使用 ajax 更新部分视图中的表 My UserInfo部分视图如下所示 model IEnumerable
  • Jquery 悬停卡

    我在用着http designwithpc com Plugins Hovercard http designwithpc com Plugins Hovercard 但我不知道如何在悬停卡上声明 var 每个工作描述都有自己的 ID 当悬
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • JQuery UI Selectable 插件:当 div 溢出时使滚动条不可选择

    我有一个 div 设置为overflow auto 该 div 的内容是可选择的 使用 jQuery UI 当 div 溢出并出现滚动条时 滚动条本身变为可选择状态 因此滚动效果不佳 在 FF Chrome 中 我可以滚动 div 但我得到
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其

随机推荐