我正在使用JQGrid 4.4.4。我有一列edittype ='select'。网格行中显示的值是正确的。但是当我编辑该行时,下拉/组合框值被设置为错误的值。它不是将其设置为值,而是将其设置为具有相同文本值的标签。下拉列表中的值标签对为 - {'1':'0','21':'1'}
。问题仅在于标签与选项中其他项目的值相同时。
这是JS小提琴 - http://jsfiddle.net/ksrini/ehj0nyLu/4/ 这是一个显示问题的屏幕截图。
该问题在4.6中是可重现的。 JQGrid论坛似乎已经关闭,如果这确实是一个bug,我就无法提出错误。
有关我如何解决或解决此问题的任何建议?
谢谢,
答案 0 :(得分:0)
您使用的演示不会重现此问题,因为jqGrid 4.6和旧版本4.4.4都不支持本地数据编辑。使用
非常重要formatter:'select'
仅在jqGrid应保存下拉列表/组合框的值的情况下。您可以通过任何方式验证free jqGrid 4.9.1是否存在所述问题(我只使用the wiki article中描述的网址):http://jsfiddle.net/OlegKi/ehj0nyLu/5/。我可以想象旧版本4.4.4中存在一些错误,但很明显没有人会修复错误。所以我建议你更新到免费的jqGrid。它是jqGrid的分支,在Tony改变4.7.1版本的jqGrid许可协议之后,我继续开发它。他的叉子名为Guriddo jqGrid JS。如果您在免费的jqGrid中发现一些错误,那么您可以将the issue发布到GitHub或在stackoverflow上发布问题的描述。 最新版本可以轻松修复,但不能修复4.4.4。
更新:该错误已在GitHub上的最新版本的免费jqGrid中修复:http://jsfiddle.net/OlegKi/ehj0nyLu/6/。固定代码将包含在我今天将发布的免费jqGrid 4.9.2中。
仅仅是为了获取信息,我在评论之前重复我之前写的:the line代码jqGrid 4.4.4,你使用它,就像所有更高版本的jqGrid和免费的jqGrid(小于4.9.2)测试<在编辑期间选择<select>
选项期间强>值或文字。仅测试值是正确的,只有在按值找不到选项时才按文本选择选项。 The fix实现了更改。
答案 1 :(得分:0)
根据Oleg在他的回答中的评论,似乎是代码中的一个错误,试图使其与使用旧版JQGrid的程序向后兼容。
目前我通过从网格中选定的行获取值并在beforeShowForm
函数中的表单中设置选择输入字段的值来解决此问题。
beforeShowForm: function(form) {
...
$("#<field-id-in-grid>", form).val(<value-from-selected-row>);
...
}
注意:我已经接受了这个(我自己的)答案。 Oleg对他的回答的评论中提到了这个问题。如果可以作为答案,我更愿意将其作为接受的答案。