在一个页面上,我有多个网格,其中一些值在同一个数据库中相同/查询。虽然网格不断刷新,但我得到了重复的行。这是为什么?当我硬刷新页面时,重复的行会消失。
我用过:
idPrefix: $(gridObject).attr('id') + "_"
// gridObject is a reference to a particular jqGrid
对于页面上的每个jqGrid
,但行ID是重复的,如下所示:
界面外观的快照:
应该只有2个组标题dhoop
和afshan
。这可能是什么原因?我正在使用jqGrid 4.6.0
答案 0 :(得分:1)
我不想写太多批评你发布的代码。我只描述与您发布的问题有关的部分。
在我看来,服务器代码将不正确的数据返回给jqGrid。您从服务器加载数据(datatype
不是"local"
)。这意味着服务器代码必须准备数据以进行分组。了解加载数据的两个基本内容非常重要:
例如,您使用选项groupingView: {groupField: "column1", ...}
和sortname: "column2"
,然后必须在服务器上按column1, column2
对数据进行排序。我的意思是第一个排序标准必须是分组字段(字段)(列column1
),第二个排序标准必须是column2
(来自sortname: "column2"
)。我想数据在后端上的排序不正确。您的问题描述:“我得到重复的行。为什么会这样?当我刷新页面时,重复的行会消失。”让我们假设这一点。
秒,你在评论的评论中写道,返回数据的每一项的格式都是{"JobID":"1","FileName":" ","StartIndex":"0","EndIndex":"0","SplitIndex":"0","Duration":"0","FileSize":"0","LogStatus":" ","Name":"afshaan"}
。我可以猜测JobID
属性的值对于每个项都是唯一的。在正确jsonReader
jsonReader: {
repeatitems: false,
id: "JobID"
}
jsonReader
通知jqGrid如何解析输入数据项。您使用以下jsonReader
代替
jsonReader : {
root: "rows",
records: "records",
viewrecords: true,
repeatitems: true,
cell: "",
id: "0"
}
这似乎是错误的。
此外,您使用jqGrid的datatype
参数定义为函数。我在stackoverflow上看到并使用datatype
作为函数的所有代码示例都是错误的。这些示例来自为jqGrid(版本3.6或更早版本)的旧版本创建的一些旧演示。我强烈建议你改用datatype: "json"
。在我看来,您只需添加选项ajaxGridOptions: { contentType: "application/json" }
并使用正确的jsonReader
。我猜它可能像
jsonReader: {
root: "responseJSON.rows",
page: "responseJSON.page",
total: "responseJSON.total",
records: "responseJSON.records",
repeatitems: false,
id: "JobID"
}