jqGrid:按“上一个”和“下一个”箭头时,图像不会在编辑窗口中更改

jqGrid:按“上一个”和“下一个”箭头时,图像不会在编辑窗口中更改,jqgrid,Jqgrid,我有一个jqGrid,其中有一列保存图像。当用户单击页面上的编辑图标时,在编辑窗口中,照片可见,这已通过navGrid的编辑部分中的以下命令完成- 重新创建表单:true, beforeInitData:函数(){ var cm=jQuery(“#list3”).jqGrid('getColProp','img'), selRowId=jQuery(“#list3”).jqGrid('getGridParam','selrow'); cm.editoptions.src='/BDED_WEB/r

我有一个jqGrid,其中有一列保存图像。当用户单击页面上的编辑图标时,在编辑窗口中,照片可见,这已通过navGrid的编辑部分中的以下命令完成-

重新创建表单:true,
beforeInitData:函数(){
var cm=jQuery(“#list3”).jqGrid('getColProp','img'),
selRowId=jQuery(“#list3”).jqGrid('getGridParam','selrow');
cm.editoptions.src='/BDED_WEB/resources/images/user'+selRowId+'.jpg';
}                
但如果我想通过按编辑窗口中的“上一个”和“下一个”箭头返回和前进到数据集,则所有数据都会更改,但图像不会更改。这意味着当用户单击pData或nData按钮时,不会调用beforeInitData方法

当用户按下“下一步”和“上一步”箭头按钮时,如何在编辑窗口中更改图像?

看起来您使用的是我为其创建的图像

单击编辑表单的“下一步”、“上一步”按钮(下图中标记为黄色)即可更改图像

可以使用callback设置
src
属性

After ClickPG按钮:功能(){
var$self=$(此),
selRowId=$self.jqGrid(“getGridParam”、“selrow”);
//下面的“img”是编辑类型为“image”的列名
$(“#img”).attr(“src”,”/BDED_WEB/resources/images/user“+selRowId+”.jpg”);
}

演示的修改版本。

您真是太好了。是的,你是对的。我已经检查了您的旧演示,并开始在dataGrid中添加图像。我还有一个问题。如果你不介意的话,我想在这里问这个问题,因为它们是相关的。在这个编辑记录窗口中,我想提供一个用于更改标志的文件按钮。当用户提交编辑表单时(即按下提交按钮),将提交文件输入类型和国家的更改值。我希望您理解我的问题。在演示中,您使用了行id作为图像名称的一部分。但是假设我已经通过记录的主键创建了图像名称。比如{recordPrimarykey}\u flag.gif。主键是隐藏的:true,在网格行中不可见。现在,单击PGButtons方法后,如何获取所选行的主键值?@ifti24:不客气!对不起,我从来没有用过
文件
按钮。我建议你在描述问题的地方问一个新问题。也许还有别的东西可以帮你。您可以尝试使用更多标记作为
jqgrid
,因为问题主要是HTML/jQuery问题。非常感谢您的快速回复。我将永远记住您。@ifti24:如果您使用主键,则通常应填写输入数据的
id
属性或使用
jsonReader:{id:“recordPrimarykeyPropertyName”}
。不需要隐藏列,jqGrid将使用输入数据中的值作为rowid。如果由于其他原因确实需要隐藏列,则可以在列定义中添加
key:true
属性。它将使每行的
id
attribute(rowid)的值与列中的值相同。最后一种情况:如果知道rowid,可以使用
$(this).jGrid(“getCell”,rowid,“colName”)
获取隐藏列的值。