Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么FreeJQGrid在GridUnload之后不重置行ID? 问题_Jqgrid - Fatal编程技术网

为什么FreeJQGrid在GridUnload之后不重置行ID? 问题

为什么FreeJQGrid在GridUnload之后不重置行ID? 问题,jqgrid,Jqgrid,我有一个非常复杂的,相当过时的jqgrid实现,我正在升级到最新的免费jqgrid,我们遇到了一个问题,在使用unload清除网格后,当我们重新初始化网格时,行ID高于应该启动的值 它们似乎仍在增加,不再重新开始。在重新渲染网格之前,是否需要清除一些全局计数器以使网格完全清除自身 网格清除 GridUnload运行后的行 显示一个id,如jqg56 发帖后我试过的东西 网格破坏 卸载前清除网格 解决方案 正如@Oleg所建议的,我只需要在处理网格数据时手动设置id属性。jqGrid使用公共计

我有一个非常复杂的,相当过时的jqgrid实现,我正在升级到最新的免费jqgrid,我们遇到了一个问题,在使用unload清除网格后,当我们重新初始化网格时,行ID高于应该启动的值

它们似乎仍在增加,不再重新开始。在重新渲染网格之前,是否需要清除一些全局计数器以使网格完全清除自身

网格清除 GridUnload运行后的行 显示一个id,如
jqg56

发帖后我试过的东西
  • 网格破坏
  • 卸载前清除网格
解决方案
正如@Oleg所建议的,我只需要在处理网格数据时手动设置id属性。

jqGrid使用公共计数器,以确保在使用内置id生成器时不会出现重复值

要重置该值,需要将guid参数设置为1-即

$.jgrid.guid =1;

卸载网格后,jqGrid使用公共计数器,以确保使用内置id生成器时不会出现重复值

要重置该值,需要将guid参数设置为1-即

$.jgrid.guid =1;

卸载网格后,我发现您对rowids的含义和输入数据的要求理解不正确。我特别想知道Tony建议重置
$.jgrid.guid
。我觉得这个建议很糟糕,因为它看起来像一个解决方案,但它会产生更严重的问题,因为问题已经解决了

首先,了解rowid是什么很重要。Rowid是网格行的
id
属性的值:网格主体的
元素的
id
值(请参阅)。rowid用作jqGrid的几乎所有回调和事件的参数。因为jqGrid必须为每一行分配id属性,网格的输入数据必须包含rowid信息!rowid的存在对于jqGrid的工作至关重要。只有这样,jqGrid才能在输入数据错误的情况下生成唯一的rowid。生成ID的另一种方法是阻止创建网格

jqGrid允许仅为一些简单网格在输入数据中指定rowid的错误,其中只需要显示一些简单数据,而不需要使用rowid。如果您使用ids,那么您应该只以一种方式解决问题:您必须修复输入数据。例如,可以在输入数据的每个元素中包含具有唯一值的
id
属性。您应该考虑到,不仅在网格中,而且在整个HTML页面上都不存在重复的id。如果HTML页面有多个网格(包括带子网格的网格),则严格建议对每个网格使用具有唯一值的
idPrefix
选项

重置
$.jgrid.guid
非常危险
,并且由于创建具有重复id值的元素,可能会中断jqGrid的功能。属性
$.jgrid.guid
全局的。这在页面上的所有网格和子网格上都很常见。在手动重置
$.jgrid.guid
后,简单子网格场景将生成重复的id。它将在jqGrid代码的许多地方使用的
$.jgrid.randId()方法中使用。例如,
inlineav
使用的方法
addRow
使用该方法


我再次把我的建议说得更清楚。如果您使用rowids,或者rowids的值在某种程度上对您很重要,那么您必须将
id
属性包含到每个输入数据项中。如果某些其他属性已经具有唯一值,则可以在
colModel
的相应列中添加
key:true
(只能在一列中使用
key:true
)。或者,如果输入数据的
myId
属性包含唯一的rowid,而不是默认的
id
属性,则可以添加
prmNames:{id:“myId”}

我发现您错误地理解了rowid的含义和对输入数据的要求。我特别想知道Tony建议重置
$.jgrid.guid
。我觉得这个建议很糟糕,因为它看起来像一个解决方案,但它会产生更严重的问题,因为问题已经解决了

首先,了解rowid是什么很重要。Rowid是网格行的
id
属性的值:网格主体的
元素的
id
值(请参阅)。rowid用作jqGrid的几乎所有回调和事件的参数。因为jqGrid必须为每一行分配id属性,网格的输入数据必须包含rowid信息!rowid的存在对于jqGrid的工作至关重要。只有这样,jqGrid才能在输入数据错误的情况下生成唯一的rowid。生成ID的另一种方法是阻止创建网格

jqGrid允许仅为一些简单网格在输入数据中指定rowid的错误,其中只需要显示一些简单数据,而不需要使用rowid。如果您使用ids,那么您应该只以一种方式解决问题:您必须修复输入数据。例如,可以在输入数据的每个元素中包含具有唯一值的
id
属性。您应该考虑到,不仅在网格中,而且在整个HTML页面上都不存在重复的id。如果HTML页面有多个网格(包括带子网格的网格),则严格建议对每个网格使用具有唯一值的
idPrefix
选项

重置
$.jgrid.guid
非常危险,可能会破坏func