【问题标题】:customize jqGrid edit button inside row to open new view自定义行内的jqGrid编辑按钮以打开新视图
【发布时间】:2015-03-25 20:37:46
【问题描述】:

所以jqGrid每一行里面的编辑按钮的默认行为是在同一个页面中打开表单,对吧?

我需要它来打开另一个视图,另一个 URL。

我已经使用 .navButtonAdd 方法通过位于网格分页器中的编辑按钮来完成此操作。但我不知道如何为行按钮做同样的事情。

有人可以帮帮我吗?

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    jqGrid 目前不提供任何简单的方法来将编辑调用替换为另一种方法或包含自定义按钮。你也可以选择“子类化”$.fn.fmatter.rowactions 函数,就像我在the answer 中描述的那样。 $.fn.fmatter.rowactions 函数将在单击任何操作按钮时被调用。所以可以测试act参数是否为"edit"。如果没有"edit" 按钮,您可以将呼叫转发到原始$.fn.fmatter.rowactions 功能。如果是"edit" 按钮,您可以改为执行任何自定义操作。

    更新:确切的实现在一定程度上取决于您使用的 jqGrid 版本,因为函数 $.fn.fmatter.rowactions 的参数和 this 的值对于不同版本的 jqGrid 是不同的。我为您创建了the demo,它使用了free jqGrid 4.8(参见readmewiki)。我使用以下代码进行子类化

    var orgRowActions = $.fn.fmatter.rowactions;
    $.fn.fmatter.rowactions = function (e, act) {
        var $grid = $(this).closest("table.ui-jqgrid-btable"),
            rowid = $(this).closest("tr.jqgrow").attr("id");
    
        if (act === "edit") {
            $grid.jqGrid("viewGridRow", rowid);
            return false;
        }
        return orgRowActions.call(this, e, act);
    }
    

    因此,“编辑”按钮会启动“查看”而不是编辑表单。

    我计划在下一版本的免费 jqGrid 中包含更多自定义可能性。因此,无需使用子类化技巧即可创建自定义内联图标。

    【讨论】:

    • 感谢您帮助我,奥列格。不过,我认为我做错了什么。抱歉,这对我来说有点晦涩难懂:/ 根据您发布的链接,我正在这样做:var orgRowActions = $.fn.fmatter.rowactions; $.fn.fmatter.rowactions = function (rid, gid, act, pos) { var $grid = $("#" + $.jgrid.jqID(gid)), rowData = $grid.jqGrid("getLocalRow", rid), isNonEditable = false, result; if (act === "edit") { window.location = myURL; } result = orgRowActions.call(this, rid, gid, act, pos); return result; } 关于我哪里出错了有什么想法吗?
    • @LucasGabriel:我为您创建了演示实现的演示。请参阅我的回答的更新部分。
    • 非常感谢!就是这样。我使用的是 4.6.0 版本,参数确实不同。它现在工作得很好!
    • @LucasGabriel:不客气!我认为$.fn.fmatter.rowactions的接口在4.6.0和free jqGrid 4.8中是一样的,所以你也可以在4.6中使用相同的代码。我仍然建议您尝试免费的 jqGrid,它像 jqGrid 4.6 一样免费,它包含许多新功能和错误修复。是jqGrid的fork,以后会继续开发。
    • 那我就用那个。我的项目处于早期阶段,所以我最好立即更改它。
    猜你喜欢
    • 2014-05-16
    • 2016-05-19
    • 1970-01-01
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多