Struts2 Jquery jqGrid beforeShowForm 示例

Struts2 Jquery jqGrid beforeShowForm Example

我正在寻找一种在 struts2-jquery 网格上打开编辑对话框时使用 beforeShowForm 事件的方法。我希望能够将自定义字段添加到编辑对话框。

<sjg:grid
        altRows="false"
        id="gridtable"
        dataType="json"
        editurl="%{editurl}"
        filter="true"
        filterOptions="{stringResult:true}"
        gridModel="gridModel"
        height="600"
        href="%{remoteurl}"         
        loadonce="true"
        navigator="true"
        navigatorAdd="%{editPermission}"
        navigatorAddOptions="{reloadAfterSubmit:true,addCaption:'Add Record'}" 
        navigatorDelete="false"
        navigatorEdit="%{editPermission}"
        navigatorRefresh="true"
        navigatorSearch="false"
        onCompleteTopics="loadComplete"
        onSelectRowTopics="rowselect"
        pager="true"
        pagerButtons="true"
        rowList="25,50,100"
        rowNum="25"
        rownumbers="true"
    >

但是,我在理解如何将 beforeShowForm 事件与 sjg 标记一起使用时遇到问题。我已经搜索了好几天的解决方案,但所有这些解决方案似乎仅在使用常规 jqGrid 而不是专门使用 sjg 标签时才出现。大多数示例似乎都引用了 jqGrid wiki,但我还是不明白访问该事件的方式。有人可以给我一个在 sjg 标签内的编辑按钮上为 beforeShowForm 分配函数的示例吗?

谢谢

我自己不使用 struts2。我假设网格的 id 是 "gridtable"。我建议您使用 jQuery 事件而不是回调 。您只需要使用 jQuery.bind。大多数回调具有相应的 jQuery 事件,这些事件存在于从 4.3.2 版开始的 jqGrid 中。 jQuery 事件用法的最大区别是添加了额外的第一个参数,在我们的例子中,它给你的信息不多。你可以使用例如

$("#gridtable").bind("jqGridAddEditBeforeShowForm", function (e, $form, oper) {
    alert("In jqGridAddEditBeforeShowForm");
});

在这种方式下,您可以转换在 jQuery 事件的使用中找到的大多数其他解决方案。