【问题标题】:How to show image in jqgrid in edit mode如何在编辑模式下在 jqgrid 中显示图像
【发布时间】:2026-02-02 19:20:08
【问题描述】:

jqGrid 包含下面使用 colmodel 定义的图像列。图像 id 在 json 中从服务器的单元格值中传递。 如果不在编辑模式下,网格可以正确显示图像。

内联和表单编辑模式显示错误图像,因为 editoptions src 属性包含固定 id 1

如何在编辑模式下显示来自可编辑行 ID 的图像?如何像格式化函数一样将单元格值传递给editoptions src属性?

name:"Image",
edittype:"image",
editoptions:{ src: "GetImage?id=1"},
formatter:function(cell,options,row) {
     return "<img src='GetImage?id=" +  cell + "'/>"
  }

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    我可以建议您在开始编辑之前立即更改editoptionssrc 属性的值。详情请查看the answer。表单编辑可以使用beforeInitData修改src

    beforeInitData: function () {
        var cm = grid.jqGrid('getColProp', 'flag'),
            selRowId = grid.jqGrid('getGridParam', 'selrow');
        cm.editoptions.src = 'http://www.ok-soft-gmbh.com/img/flag_' + selRowId + '.gif';
    }
    

    所以你会收到这样的编辑表单

    对于网格

    查看对应的demohere

    【讨论】:

    • 非常感谢。如何通过允许用户在添加和编辑中上传新图像来使图像真正可编辑?我们可以使用 dataProxy 中的 html5 文件上传功能或 jquery 表单插件吗?
    • 我在*.com/questions/7614667/…发布了关于真实图像编辑的问题
    • 保存行数据也会改变服务器中的行图像。但是,新图像不会以编辑形式和网格显示。保存后不生成图片 http 请求。仅按浏览器刷新按钮会在网格中显示新图像。如何在行更新后立即显示新图像?