调用格式化程序后的JQGrid setRowData事件

时间:2015-01-22 17:59:57

标签: jquery-ui menu jqgrid

回应

jQuery UI menu inside a jqGrid cell

我对网格的具体实现必须在很多地方调用setRowData。调用setRowData时,将调用该列的格式化程序,并在响应setRowData重建行时返回< button>。

但是在菜单示例中,按钮的格式(对.button()和.buttonset()的调用)发生在loadComplete上。由于loadComplete显然不会在setRowData之后运行,因此列中的按钮显示为未格式化。所以,假设我们在身体上添加了一个按钮:

<button id="setRowData">Set Row Data</button>

和$(function(){})中的点击事件

$("#setRowData").click(function() {
  var $grid = $("#list");
  var data = $grid.jqGrid('getRowData', 1);
  data.name = "Changed!";
  $grid.jqGrid('setRowData', 1, data);
});

如果单击该按钮,“我的操作”和“Bla Bla”按钮将显示为未格式化。

Grid with buttons unformatted

所以,我正在寻找一个事件,在将&lt; button&gt; s添加到dom后,我可以挂掉setRowData,所以我可以再次调用.button()和.buttonset() 。我想使用一个事件,因为我有一个通用例程,它正在执行setRowData(在另一个库中)。

1 个答案:

答案 0 :(得分:0)

好的,我挖掘了JQGrid代码,发现在setRowData完成后调用了jqGridAfterGridComplete。所以我添加了一个:

$("#list").on("jqGridAfterGridComplete", function() {
    ... call the .button code again
});

到就绪功能,再次应用样式。可能有更好的方式,请随意提供。但这似乎有效。