jqGrid - 添加/编辑模式中的行跨度

时间:2015-03-25 09:48:41

标签: javascript jquery jqgrid

在我的一个jqGrid添加/编辑模式中,我想以这种方式排列字段,如下图所示:

enter image description here

感谢Oleg,我已经从his post知道了如何安排多列中的字段。但我想在添加/编辑模式中执行rowspan,如下图所示

1 个答案:

答案 0 :(得分:0)

我是根据small demo的演示为您the answer创建的。该演示具有隐藏列flag,该列为图片的URL提供信息。我定义了如下所示的列

{ name: "flag", index: "flag", width: 55, hidden: true,
    edittype: "image", editrules: { edithidden: true },
    editoptions: { src: "", style: "margin-left: 20px" },
    formoptions: { label: "", rowpos: 1, colpos: 2}}

“修改”表单使用beforeInitData根据src的值设置flag属性,然后在beforeShowForm内设置编辑表单的所有必需属性。如果需要支持编辑表单的Next / Prev按钮,那么也应该使用afterclickPgButtons回调。最终代码如下

$grid.jqGrid("navGrid", "#pager", {add: false, del: false, search: false}, {
    recreateForm: true,
    width: 450,
    beforeInitData: function () {
        var $self = $(this),
            cm = $self.jqGrid("getColProp", "flag"),
            selRowId = $self.jqGrid("getGridParam", "selrow"),
            lang = $self.jqGrid("getCell", selRowId, "flag");
        cm.editoptions.src = "http://www.ok-soft-gmbh.com/img/flag_" + lang + ".gif";
    },
    beforeShowForm: function ($form) {
        var $formRows = $form.find(".FormData");
        $formRows.eq(0).children("td.DataTD").eq(1).attr("rowspan", "3"); //.css("text-align", "center");
        $formRows.eq(1).children("td.DataTD").eq(1).hide();
        $formRows.eq(2).children("td.DataTD").eq(1).hide();
    },
    afterclickPgButtons: function () {
        var $self = $(this),
            selRowId = $self.jqGrid("getGridParam", "selrow"),
            lang = $self.jqGrid("getCell", selRowId, "flag");
        $("#flag").attr("src", "http://www.ok-soft-gmbh.com/img/flag_" + lang + ".gif");
    }
});

显示结果

enter image description here