【问题标题】:jqGrid form edit stuck with initially loaded valuesjqGrid 表单编辑卡在初始加载的值上
【发布时间】:2010-11-09 15:57:09
【问题描述】:

当我打开表单来编辑值时:

  1. 当我使用<> 按钮导航时,它不会更改表单值

  2. 它会打开与第一个编辑行具有相同值的新表单,当我单击 "Submit" 时,它会覆盖该行而不是创建新项目

  3. 当我点击编辑另一行时,它总是显示第一个编辑行的表单值 - 即,如果我先点击新建然后编辑行,它会显示空表单。

因此,简而言之,第一次打开表单时,值会“卡住”我稍后打开的任何行。

是什么原因造成的?我记得前段时间它可以正常工作。

更新:

不使用 recreateForm 我没有这个问题(我将其用作临时解决方法)。

嗯,我可以在 jqGrid 示例上重现这一点,但不能在 Live Manipulation 上重现 - 在 3.7 版中的新功能上,Add/edit/deletelocal data 上:

  1. 单击任意行并进行编辑(打开表单)
  2. 关闭表格
  3. 选择任何其他行并单击编辑 - 表单显示不正确的值(来自最先打开的行)
  4. 单击工具栏中的添加新行按钮 - 表单显示相同的值 - 这非常方便,通常新行“几乎”相同 - 只要它会添加新行,而不是更新现有行!

当然live demo Submit 不会这样做(它似乎根本不起作用),但除了这个症状是一样的。

此外,<> 按钮不会更改表单中的数据,尽管它们会更改选定的行 - 但据我之前的记忆,它用于更新表单值以匹配选定的行。

【问题讨论】:

  • 您能否发布一个示例或示例的 URL 以重现该问题?如果您使用recreateForm:true 参数进行编辑和添加对话框,您是否有相同的结果?我建议您始终使用recreateForm:true
  • 你能重现你的演示结果吗trirand.com/blog/jqgrid/jqgrid.html 是在树上选择“实时数据操作”然后选择“导航器”吗?此外,您可能应该改写您的问题。例如,“编辑值的表单”不应“创建新项目”(参见 2)。您是在谈论“添加新行”还是“编辑选定行”?按钮“”导航到下一行或上一行,而不是更改数据。它默认为“Esc”(放弃更改)和编辑下一行/上一行。你能更准确地解释一下你的情况吗?

标签: jqgrid


【解决方案1】:

您可能应该在trirand forum 中将您的错误描述与“3.7 版中的新功能”、“添加/编辑/删除”作为错误发布。

问题是该错误存在于非常特殊的环境/数据/设置中。例如,我测试了 my old local edit example 修改为 jqGrid 3.8.1 或 in 3.7.2 并且无法重现您描述的问题。因此,您可以将我的示例用作模板,对您有帮助吗。

此外,在我用于实际项目的所有示例中,我始终使用参数recreateForm:true。如果您不使用它,jqGrid 不会创建表单,而是尝试使用现有的其他数据。它在很多情况下都是错误的。例如,如果您使用任何dataInit 函数,它们将在创建表单期间仅被调用一次,这会产生非常奇怪的影响。如果您使用edittype: 'custom',则必须使用recreateForm:true(请参阅this)。所以我推荐many times所有人使用

jQuery.extend(jQuery.jgrid.edit, {recreateForm: true});

recreateForm: true 设置为默认设置。您可以在编辑/添加对话框中节省数小时或数天的调试一些奇怪效果的时间。

【讨论】:

  • 好的,感谢您的回复。至于 recreateForm,我使用 dataUrl 选择并用每个表单重新加载它们看起来不太好;所以我不想使用 recreateForm 或使用它但缓存选择;也许我可以使用自定义选择加载器来做到这一点。
  • @queen3:dataUrl的使用并不意味着加载数据会很多次。例如,如果您在服务器响应中设置 HTTP 标头 Cache-Control: max-age=60,则客户端上的所有 ajax 调用将不会在 60 秒内向服务器发送任何 dataUrl 请求。请参阅stackoverflow.com/questions/3885658/… 了解更多信息。
  • @queen3:再来一次要清楚。 1) 我建议您向 jqGrid 开发人员发布错误 2) 我建议您始终使用recreateForm: true,这可以节省您的大量时间。在我决定在我的所有项目中这样做之前,我个人花了 2 天的时间进行调试。如果您真的会看到任何性能问题,则可以通过其他方式解决所有其他优化问题。但是使用清晰且缓慢的代码比使用错误代码和添加/编辑对话框设置的混合更好。这是我的个人意见和个人建议。您应该选择最适合您的方式。
  • 好的。您真的听起来像是在这方面有很多经验但一点也不满意的人——这正是我要解释为什么有人不应该使用 Crystal Reports 的方式,例如 ;-) 所以我会听取你的建议。
  • @kjones:不客气!我在许多答案中重复使用recreateForm: true 的建议。我花了很多时间(我认为甚至更多)来解决同样的问题。我向 Tony (trirand) 发布了功能请求以更改默认设置,但 Tony 对此主题有另一种看法。祝你好运!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-15
  • 1970-01-01
  • 1970-01-01
  • 2021-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多