我有一个已经初始化的JQGrid。如何为其添加事件处理程序?我试过了
grid.setGridParam({
onSelectRow: function(rowid, status) {
alert("onSelectRow");
}
});
但这没有做任何事情(没有错误,但在选择时也没有警告)。
更新
事实证明上面的代码实际上工作正常 - 尽管@jitter指出新的API语法是首选。我的问题是grid
指的是错误的对象。由于某些原因,在gridComplete事件处理程序中,$(this)
不会返回对网格的引用,但$("#" + this.id)
会这样做。
// handles the gridComplete event
gridInitialized = function() {
var grid = $("#" + this.id);
grid.jqGrid("setGridParam", { onSelectRow: selectRow });
};
答案 0 :(得分:9)
这样做的正确方法(+使用新的API语法)就是这样。不需要.trigger("reloadGrid")
grid.jqGrid("setGridParam", {
onSelectRow: function(rowid, status) {
alert("onSelectRow");
}
});
答案 1 :(得分:1)
只需添加触发器即可重新加载网格,如下所示:
grid.setGridParam({
onSelectRow: function(rowid, status) {
alert("onSelectRow");
}
}).trigger("reloadGrid");
根据文档的说法,它应该重新加载网格,但是如果我创建网格并不会发生这种情况,稍后会添加此功能。
如果我将此代码放在链接的onclick处理程序中,它会触发重新加载网格。