jqGrid - rowObject 不一致?

2023-11-23

带有 jqgrid rowObject 的第一页结果返回预期数据,但随后返回后续结果页的不完整数据。为什么?

结果第一页: rowObject[3] 将等于“2”

结果的后续页面: rowObject[3] 将等于“未定义”,并且返回结果的第一页现在也将等于“未定义”。

更多细节和一些代码:

对于 jqGrid,如果您想实现自定义格式化程序,您可以使用一个名为 rowObject 的参数,其中包含行数据。例如,rowObject 的一行可能类似于:

["18", "133", "Betelguese", "3", "photo.jpg", "", "0", ""]

因此,我的自定义格式化程序使用其中一些数据来准备链接,如下所示:

var newval = '<a href="/proj/' + rowObject[3] + '/images/' + imgval + '">' + imgval + '</a>';

这给了我一个像这样的网址:

<a href="/proj/3/images/photo.jpg">photo.jpg</a>

到目前为止,一切都很好。我的问题是,当我转到 jqgrid 中的下一页结果时,我丢失了一些数据并得到:

<a href="/proj/undefined/images/photo.jpg">photo.jpg</a>

如果我加载显示所有结果的页面,则一切正常,但是如果我使用分页,则只有结果的第一页将具有 rowObject[3] 的正确值,而后续页面上的所有其他结果将不会具有该 rowObject 值!

那么为什么 rowObject 包含最初加载到网格中的正确数据,而当出现下一页网格结果时似乎会丢失该数据呢?

我在 Firebug 中看到的一件事我不明白......当页面最初加载时我得到:

console.log(rowObject); 
["18", "133", "Betelguese", "3", "photo.jpg", "", "0", ""]

在结果的下一页,事情停止按我的预期工作,我看到

console.log(rowObject);
Object { photo_id="18", site_id="133", more...} 

为什么要改变?第一个结果是 json 那么为什么我现在得到这个对象?


我想你用loadonce:true选项。这是一个带来很多问题(主要是理解问题)的选项。在 jqGrid 3.7 版本中引入新的本地排序、分页和过滤(搜索)功能之前,本地和远程数据之间的分离是很清楚的。从 jqGrid 版本 3.7 开始loadonce:true选项允许您在第一次加载时拥有的远程数据和稍后拥有的本地数据之间进行混合。在另一个答案封闭问题已经讨论过。在加载过程结束时,如果出现以下情况loadonce:true选项使用datatypejqGrid 的将更改为'local'。之后,很多事情都会发生变化。

我建议你使用jQuery.isArray(rowObject)作为确定您是否应该访问的快速有效的方法rowObject每个整数索引rowObject[3](如果您访问远程数据)或每个命名属性rowObject.projectId.

您可以使用以下命令查看整个本地数据$("#list").jqGrid('getGridParam','data'),它返回所有本地的数组rowObject.

如果您需要访问的数据(rowObject[3]) 没有保存在 jqGrid 的某些列中,那么您将无法看到rowObject。在这种情况下,您可以为数据使用额外的隐藏列或在第一次加载时保存数据loadComplete: function(data) { ... } in any 外部对象。你可以测试一下$("#list").jqGrid('getGridParam','datatype') is 'json' (or 'xml'取决于您的服务器数据),如果为真,您可以保存您需要的从服务器返回的所有数据(从第 3 列开始)dataarray) 位于对象的外部数组中。因此,您稍后可以在自定义格式化程序中访问数据。

UPDATED: 问题已解决免费 jqGridjqGrid 的分支。自定义格式化程序(和cellattr, rowattr) 仍包含rowObject出于兼容性原因参数,但存在额外的 rowData属性,其中解析的数据保存为命名属性:

formatter: function (cellValue, options, rowObject) {
    // either rowObject[1] or rowObject.site_id,
    // but options.rowData.site_id works ALWAYS
}

一个可以用

cellattr: function (rowid, cellValue, rowObject, cm, item) {
    // either rowObject[1] or rowObject.site_id,
    // but item.site_id works ALWAYS
}

in cellattr.

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

jqGrid - rowObject 不一致? 的相关文章

  • 区分单击与 mousedown/mouseup

    我已经阅读了有关这种情况的 stackoverflow 上的几个答案 但没有一个解决方案有效 我尝试根据用户是否单击某个元素或使用 jQuery 将鼠标按住该元素来执行不同的操作 有可能做到这一点吗 onMouseDown 将在按下左侧或右
  • Blueimp jQuery 文件上传,传递额外的表单数据

    我可以使用一些帮助 我已经设法使 blueimp jQuery 文件上传为我工作 但我仍然绝对是一个新手 我对 jQuery 等知之甚少 所以请尝试将其清晰明了地提供给我尽可能简单 我会尝试具体一点 好的 我想实现的是人们可以上传照片 并为
  • WebDriver:更改事件未触发

    我有一个使用 KnockoutJS 的应用程序 我正在尝试编写一些测试表单的测试 如果您不了解 KnockoutJS 简单来说 它提供了从我的视图到我的数据模型的绑定 这意味着当我在输入字段中键入值时 我的基础对象会自动使用该输入字段值进行
  • React:React 如何确保在浏览器有机会绘制之后调用 useEffect?

    useLayoutEffect 的文档说 useLayoutEffect 内计划的更新将被刷新 在浏览器有机会绘制之前同步进行 useEffect 的文档说 与 componentDidMount 和 componentDidUpdate
  • History.replaceState 仍然向“浏览历史记录”添加条目

    具体来说 调用以下代码片段 history replaceState undefined undefined value 正确地不会影响当前页面的后退按钮行为 但是will在 浏览历史记录 页面添加一个条目 这是我不想要的 下图是 Chro
  • NodeJS 无法加载 css 文件

    所以我正在尝试制作一个 NodeJS 服务器 并且我尝试保留尽可能少的附加组件 但是 我遇到了一个问题 我似乎无法加载任何内容CSS我调用的文件HTML文件 该调用似乎确实由服务器处理 但它不会显示在浏览器中 My 网络服务器 js fil
  • 有没有办法在 TypeScript 2+ 中全局添加类型定义?

    我有一堆简单的 ts files 不是项目 即独立的 ts 脚本 他们使用一些 Node js 功能 TypeScript 和节点类型定义通过安装 npm install g typescript npm install g types n
  • django ajax post 403被禁止

    使用 django 1 4 当我尝试从我的 javascript 做我的 django 服务器上的帖子时 我收到 403 错误 我的 get 工作正常 尽管问题仅出在帖子上 也尝试过 csrf exempt但没有运气 更新 我现在可以发布我
  • 对数字和字母元素的数组进行排序(自然排序)

    假设我有一个数组 var arr 1 5 ahsldk 10 55 3 2 7 8 1 2 75 abc huds 我尝试对其进行排序 我得到了类似的东西 1 1 10 2 2 3 5 55 7 75 8 abc ahsldk huds 注
  • 如何检查jquery数据表中的每个复选框?

    我有一个第一列带有复选框的表格 我使用 jQuery DataTable 插件显示我的表格 我制作了 2 个链接来选择 取消选择每个复选框 这是选择全部的一个 a href Select all a 和 JavaScript functio
  • 在外部单击时关闭弹出 div

    我有一个弹出 div 仅在单击特定按钮时显示 单击同一按钮时它甚至会隐藏 我的问题是 我还想在单击外部任何地方时隐藏 div 我无法这样做 因为弹出 div 位于主包装类内部 并且无法通过在包装类上使用 click 事件并使其隐藏来做到这一
  • chrome 扩展 - 将数据从后台传递到自定义 html 页面

    创建浏览器扩展 我必须从 background js 打开新选项卡并将 JSON 数据传递到这个新选项卡 在新选项卡中 我使用传递的 JSON 数据来操作 渲染 DOM 下面是我的 background js 的一部分 我在其中使用自定义
  • 如何在 OpenLayers 3 中删除监听器

    我做了一个copy https gis stackexchange com questions 178222 how to delete a listener in openlayers 3我在 stackoverflow 上提出的问题 因
  • Google 地图 v3 中标准缩放控件的样式

    有没有一种简单的方法可以在 Google Maps JavaScript API v3 中设置缩放控件的样式 我想要的只是改变标准图像 http maps gstatic com intl en ALL mapfiles mapcontro
  • IE6 丢失查询字符串

    我有一个使用 javascript 从查询字符串中获取值的页面window location 从网络服务器运行时效果很好 但如果我通过将其放在地址栏中使用 IE6 在本地运行它 c mysite index htm 网站创建的任何查询字符串
  • 优化正则表达式以过滤数千个 HTML 选择选项

    背景 我开发了一个基于 jQuery 的穿梭小部件 https stackoverflow com a 13557000 59087对于 HTMLselect元素 因为我找不到一个经过最低限度编码并提供正则表达式过滤器来补偿的元素变音符号
  • 如何使用 .append() 将 React 组件附加到 HTML 元素

    我正在尝试对我的博客实现无限滚动 我有 const articlesHTML document querySelector articles 作为容器 每次点击装载更多按钮 我想将新文章附加到主 html 元素 如下所示 const res
  • 使用 dnode 从服务器向客户端发送消息

    几个月前 我发现了 nowjs 和 dnode 并最终使用了 nowjs 并且https github com Flotype nowclient https github com Flotype nowclient 用于客户端 服务器双向
  • 如何在 ChartJS 中创建自定义图例

    我需要使用 ChartJS 库为我的圆环图创建自定义图例 我已经使用 ChartJS 提供的默认图例创建了甜甜圈 但我需要一些修改 我希望其价值高于汽车名称 另外 我不喜欢粘性图例 我想将其与甜甜圈分开 这样我就可以更改字体 框的样式 例如
  • Angular 5 中 Observable.ForkJoin 的重复 Http 请求

    我有一个 Angular 5 应用程序 组件中包含以下代码 ngOnInit Observable forkJoin this highlightedInsight this insightService getHighlightedIns

随机推荐

  • 谁在驱动程序代码中调用“probe”函数?

    我试图理解thisomap2 panda 板的 mcspi 驱动程序代码 我不明白谁打电话probe函数以及调用链是什么this驱动代码 设备连接时如何通知驱动程序 探针函数由spi omap2 mcspi c保存在static struc
  • 查找数组中相同数字的最长出现次数

    使用 JavaScript 我试图找到一种方法来查找数组中相同数字 在本例中为 1 的最长出现次数 例如 这是一个示例数组 2 5 3 1 1 1 3 7 9 6 4 1 1 1 1 1 4 7 2 3 1 1 4 3 我想编写一个返回 5
  • 分配并创建新的字符串差异

    String s1 new String string String s2 new String string String s3 string String s4 string System out println s1 s2 FALSE
  • 有没有适用于 iOS 的 unrar 库?

    我想在我的 iPhone 应用程序中包含 unrar 文件选项 我已经尝试过了https github com ararog Unrar4iOS但这个库并不完整 有些功能尚未实现 例如 BOOL unrarFileTo NSString p
  • 反向代理背后的 HTTP/2

    到目前为止 所有教程都告诉我 我需要在服务器上启用 SSL 才能支持 HTTP 2 在给定的场景中 我们在后端 Tomcat Jetty 服务器前面有 nginx 尽管从性能角度考虑值得在后端启用 HTTP 2 但在那里也拥有 HTTPS
  • HTTP GET 和 POST 参数建议

    发出以下 POST 请求是否是不好的做法 test a 1 b 2 POST data c 3 d 4 请注意 2 个参数是 URL 的一部分 2 个参数是 POST 内容的一部分 另一方面 仍然建议遵循以下规则 GET 请求 从中检索内容
  • Tensorflow:对小批量中的每个样本使用不同过滤器进行卷积

    我想要一个带有过滤器的二维卷积 该过滤器取决于张量流中小批量中的样本 有什么想法可以做到这一点 特别是在每个小批量的样本数量未知的情况下 具体来说 我有输入数据inp形式的MB x H x W x Channels 我有过滤器F形式的MB
  • 是否可以从 C# 中调用用户定义(自定义)R 函数?

    是否可以从 C 中调用用户定义 自定义 R 函数 例如 用 R 编写的简单矩阵乘法函数 matrix mult function a b c a b return c 我怎样才能从c 调用这个R函数matrix mult a b 经过一番研
  • 将浮雕添加到navigationItem.titleView中的UILabel(如navigationItem.title所示)

    我试图模仿自动应用于 navigationItem title 以及许多其他 UIKit 控件的默认浮雕 如该屏幕截图的标题 表格单元格 所示 source quicksnapper com 我本质上是想向 navigationItem t
  • HttpContext 和 SignalR HubCallerContext 之间的统一静态类

    我有很多依赖于 HttpContext Current 的代码 我注意到来自 SignalR 集线器的请求HttpContext Current null 所以我的代码中断了 例如 HttpContext Current Request I
  • 为远程托管的 SQL Server 定义连接字符串

    目前我有以下内容
  • C# 将一个目录与另一个目录合并

    我有一个自动更新程序 C 程序 它将下载一个 rar 文件 其中包含用于更新某些软件的更改或新文件 rar 文件的结构与软件的基本目录类似 但仅包含已更改或新的文件 文件夹 有没有一种简单的方法可以将这些文件 文件夹 合并 到目标目录 这样
  • CruiseControl.NET 电子邮件发布者问题

    我想将 ccnet 设置为 每次构建后向提交者发送邮件 无论状态如何 当构建中断或修复时 向所有其他开发人员发送邮件 随着 CCNet 的每个新版本 电子邮件发布者都会被重构 并且据说有所改进 但我仍然遇到同样的问题 只有提交者会收到通知
  • 投影 topojson 的方法?

    给定一个形状文件 自然地球 ne 10m admin 0 sovereignty zip 鉴于我们想要将其重新投影为 D3js 数据可视化 我们可以在不同级别重新投影 1 获取重新投影的形状文件 1 使用ogr2ogr ogr2ogr f
  • dockerize 一个 wpf 应用程序并使用它

    我正在尝试对 wpf 应用程序进行 dockerize 当时只是一个简单的应用程序 现在我得到了这个 dockerfile FROM microsoft nanoserver WORKDIR C run PATH ENTRYPOINT C
  • 如何在WinForms中制作ownerdraw Trackbar

    我正在尝试制作一个带有滑块拇指自定义图形的轨迹栏 我从以下代码开始 namespace testapp partial class MyTrackBar System Windows Forms TrackBar public MyTrac
  • PHP 确定多个(n)日期时间范围何时相互重叠

    我正在努力解决以下问题 这是一个日历程序 给定多个人的一组可用日期时间集 我需要找出每个人在 PHP 中可用的日期时间范围 可用性集 p1 start 2016 04 30 12 00 end 2016 05 01 03 00 p2 sta
  • 如何检测用户的区域设置以获得正确的 csv 分隔符?

    我有一个简单的数据转换工具 它可以生成的输出之一是 csv 文件 这在英国非常有效 但当我将其运送给德国客户时 我遇到了一些问题 具体来说 他们使用 表示浮点数中的小数点 反之亦然 这意味着当他们在 Excel 中打开数据文件时 结果至少可
  • 如何使用四开同时编织两种格式?

    是否可以通过在 YAML 标头中指定来一次从 Quarto R Markdown 文档创建多种输出格式 我的猜测没有成功 title Stacked Area chart with Annotations format html gfm 尝
  • jqGrid - rowObject 不一致?

    带有 jqgrid rowObject 的第一页结果返回预期数据 但随后返回后续结果页的不完整数据 为什么 结果第一页 rowObject 3 将等于 2 结果的后续页面 rowObject 3 将等于 未定义 并且返回结果的第一页现在也将