我想将 jqgrid 的 View 形式定位到屏幕的中心。因为高度是自动设置的(取决于数据量),所以我需要在渲染后计算它的中心位置。因此我想使用afterShowForm。不幸的是,它没有被称为任何。我尝试了旧版本的 jqGrid(也许最新版本包含一个错误),但它没有解决我的问题。有谁知道为什么它不开火?请注意,当我在“beforeShowForm”中更改“afterShowForm”时,它确实会被触发。但是高度还没有计算出来。谢谢! (当然,非常欢迎您提出另一种实现我的目标的方法!)。代码:
$("#grid").jqGrid("navGrid", "#pager",
{ view: true, addfunc: additem, editfunc: edititem, delfunc: deleteitem },
{},
{},
{},
{},
{ width: 350,
afterShowForm: function (formid) {
alert('yey');
// Here I want to center the form
}
}
);
编辑:在 wiki 上,我发现 View 表单没有 afterShowForm 事件;它只有 onClose 和 beforeShowForm :( 所以我想不可能以这种方式将位置设置为中心..
最佳答案
问题的原因很简单:afterShowForm
is 在View Form中确实不存在。仅支持树事件:onClose、beforeShowForm 和 beforeInitData。所以你应该使用 beforeShowForm
,但在另一个线程中做你需要的:
beforeShowForm: function($form) {
setTimeout(function() {
// do here all what you need (like alert('yey');)
},50);
}
在大多数情况下,您甚至可以使用 0(而不是 50)作为 setTimeout JavaScript 函数的第二个参数。
关于jquery - jqgrid afterShowForm 未被调用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6781747/