JQGrid - 当edittype ='select'

时间:2015-07-31 05:51:57

标签: javascript jquery jqgrid

我正在使用JQGrid 4.4.4。我有一列edittype ='select'。网格行中显示的值是正确的。但是当我编辑该行时,下拉/组合框值被设置为错误的值。它不是将其设置为值,而是将其设置为具有相同文本值的标签。下拉列表中的值标签对为 - {'1':'0','21':'1'}。问题仅在于标签与选项中其他项目的值相同时。

这是JS小提琴 - http://jsfiddle.net/ksrini/ehj0nyLu/4/ 这是一个显示问题的屏幕截图。 enter image description here

该问题在4.6中是可重现的。 JQGrid论坛似乎已经关闭,如果这确实是一个bug,我就无法提出错误。

有关我如何解决或解决此问题的任何建议?

谢谢,

2 个答案:

答案 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对他的回答的评论中提到了这个问题。如果可以作为答案,我更愿意将其作为接受的答案。