【问题标题】:jqGrid - event on grid initializationjqGrid - 网格初始化事件
【发布时间】:2015-02-28 05:23:50
【问题描述】:

我正在使用 jquery jqGrid 插件,我需要在网格初始化时触发事件。我测试了gridCompleteloadComplete 事件,但这些事件是在每次服务器请求之后引发的。我需要一个在网格初始化后只引发一次的事件。我阅读了jqGrid events list,但没有看到任何与我的要求相关的事件。有什么办法吗?感谢您的关注。

更新:

感谢@Oleg 的回答。我正在使用 jqGrid 4.6 并使用@Oleg 建议的事件与这种模式:

  $('#grid1').jqGrid('setGridParam', {
                onSelectRow: function(id) {
                    //This event raised without problem.
                },
                onInitGrid: function(){
                  //This event does not raised.
                },
                jqGridInitGrid: function(){
                  //This event does not raised.
                },
            });

但这不起作用。使用这两个事件的正确方法是什么?

【问题讨论】:

    标签: javascript jquery events jqgrid


    【解决方案1】:

    如果我正确理解您的要求,jQuery 事件 jqGridInitGridonInitGrid 回调就是您所需要的。这是第一个事件/回调,在创建网格期间将在 jqGrid 的外部构建之后和第一次用数据填充 jqGrid 之前调用一次。事件/回调可以在 jqGrid 4.6/4.7 中使用

    我现在正在开发的free jqGrid 的新版本还包含beforeInitGrid 回调和jqGridBeforeInitGrid 事件。回调/事件将在 jqGrid 开始处理输入参数之前调用。因此,例如可以对参数进行任何修改。例如,您可以根据输入数据修改/生成colModel

    因此,回调/事件的最佳选择取决于您需要在什么初始化时刻进行一些更改以及您使用的 jqGrid 版本。

    【讨论】:

    • 我更新了我的问题并添加了您建议的事件,请再次阅读我的问题。非常感谢。
    • @hamed:抱歉,我看不到您的问题有任何变化。您使用哪个版本的 jqGrid?你试过onInitGrid或其他吗?这不是你需要的吗?在调用回调/事件时,网格中应该已经初始化什么?你需要在回调/事件中做什么?
    • 我需要在初始化后禁用网格。但只是一次,并不总是在每个服务器请求之后。
    • @hamed:我现在看到了您的更改。回调 onInitGrid 应该在 jqGrid 4.6 中工作(参见 here)。要使用jqGridInitGrid,您需要在创建网格之前注册事件,如下所示:$("#grid").bind("jqGridInitGrid", function() {alert("in jqGridInitGrid");})。您不能使用setGridParam网格创建之后,因为为时已晚。
    • 好吧,你是对的。我从你的解释中发现了问题。再次感谢您的关注。
    猜你喜欢
    • 1970-01-01
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 2021-12-17
    • 2019-12-21
    相关资源
    最近更新 更多