我在用表单编辑 and 内联编辑在我的网格中(jqGrid 4.5.2)。当我有一个可编辑列然后打开表单时,我确实看到了 HTML 代码而不是值。屏幕截图显示了我的意思。
如果相应行中没有可编辑的字段,则一切正常。我在某处读过,我不会使用Form
and Inline editing
在一起,却只记得模糊。然而,实际上一切都工作正常,除了在这种特殊情况下。
在创建之前,我可以将整行重置为只读(文本)吗Form Editing
展示?还有其他解决方案吗?
-- 编辑 1:奥列格的回答 ---
我已经检查/调试到function restoreInline()
并注意到两件事:
- 我没有连续的行 ID,但有 1、2、4、9(我的数据库主键)之类的值。它们是独一无二的,但中间缺少一些数字。结果条件是
if ($t.p.savedRow[i].id == rowid)
没有实现并且restoreRow
根本没有被调用。我的 ids 中不能有这样的间隙吗?以前从未注意到这方面的问题。
- 我对第一行和 id“1”进行了交叉检查。在这种情况下
$($t).jqGrid('restoreRow',rowid)
被调用,但我仍然在我的字段中看到“HTML 代码”。
-- 编辑2 --
已明确调用jqGrid('restoreRow',rowid)
in 在显示表单之前,但没有成功。
表单编辑应调用内部restoreInline
(参见其代码here) 调用restoreRow
为编辑表单初始化之前的行。该函数将被调用(参见the line) 紧接着beforeInitData
。因此,如果您需要保存行而不是丢弃数据,例如您可以在beforeInitData
打回来。
我想你的网格中有一些重复的 id 。所以调用restoreRow
不要恢复数据。另一个可能的原因可能是 jqGrid 中的错误,但您必须调试代码才能了解原因restoreInline
在您的情况下不会调用函数,或者为什么它不恢复行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)