【问题标题】:jqgrid custom inlinenav buttonjqgrid自定义inlinenav按钮
【发布时间】:2014-05-28 23:35:18
【问题描述】:

我有一个项目,我在其中生成一个带有 gridNav 和一个 inlineNav 的 JQGrid。 gridNav 具有自定义按钮,而 inlineNav 当然具有内联功能。

我的问题是,是否可以将 gridNav 移动到 inlineNav 之后或直接向 inlineNav 添加自定义按钮?自定义按钮需要出现在应用程序中的 inlineNav 按钮之后。

任何想法或提示将不胜感激。我希望这样做而不必完全为 gridNav 编写内联编辑处理程序。

注意:我已经尝试移动 inlineNav 和 gridNav 以防止渲染 inlineNav。

【问题讨论】:

    标签: c# jquery asp.net-mvc jqgrid


    【解决方案1】:

    navGrid、inlineNav 或navButtonAdd 添加的所有按钮具有相同的结构。实际上inlineNav 使用navButtonAdd 将按钮附加到导航栏(例如参见here)。

    因此,您可以使用 jQuery.insertAfter、jQuery.after、jQuery.insertBefore、jQuery.before 等来更改导航栏中按钮的位置。您只需要知道导航栏中按钮的 ID。 navGrid 中的按钮 id 将基于前缀 "add_"、"edit_"、"del_"、"search_"、"refresh_"、"view_" 和网格的 id 构建。 inlineNav 的 id 与网格的 id 一起设置,并具有后缀 "_ilsave"、"_ilcancel"、"_iladd" 和 "_iledit"。代码示例见the answer。

    更新:要查找导航按钮之间的分隔符,您可以例如从删除按钮中搜索下一个按钮,其中包含<span class="ui-separator">:

    var $separator = $("#del_list").next("td:has(span.ui-separator)");
    

    或者,您可以在寻呼机的左侧搜索分隔符。让我们使用寻呼机<div class="pager"></div>,然后寻呼机将具有ID为pager_left、pager_center和pager_right的树部分。导航器将插入到寻呼机的左侧。所以你可以使用

    var $separator = $("#pager_left").find("td:has(span.ui-separator)");
    

    获取分隔符。之后,您可以像任何其他按钮一样以相同的方式移动或删除分隔符。如果你需要额外的分隔符,你可以使用navSeparatorAdd方法。

    【讨论】:

    • 感谢 Oleg,此解决方案确实有效。我有一个自定义的 c# 包装器,所以我简单地调整了按钮生成部分,为第一个按钮调用 insertBefore,在所有其他按钮上调用 insertAfter。现在我只需要处理分隔符。 :D
    • @XBiLe:不客气!我在回答的 UPDATED 部分中描述了如何找到分隔按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2013-05-09
    • 2012-08-17
    • 1970-01-01
    相关资源
    最近更新 更多