jqGrid中的gridComplete问题
Issue with gridComplete in jqGrid
我有一个jQGrid,它有loadComplete和gridComplete参数。电网目前运行良好。
现在我不得不做一个通用的更改,需要添加一个对寻呼机事件有效的事件。
我添加了以下代码,以将另一个事件与gridComplete绑定。
jQuery('#grid0').jqGrid('setGridParam', { gridComplete: function()
{
myGenericMethod();
}});
此代码的问题是:调用了myGenericMethod(),但未执行原始的gridComplete块
我相信@Oleg会有答案的。
我的网格声明如下:
$("#grid0").jqGrid({
datatype: "jsonstring",
datastr:GetJSON1(),
colNames:[strFieldNames[0], strFieldNames[1], strFieldNames[2], strFieldNames[3]],
colModel:[
{name:'newdynaid', index:'newdynaid', width: 50, editable:true, editoptions:{readonly:false, size:5}, hidden:true,sortable:false},
{name:strFieldValues[1], index:strFieldValues[1], editable:false, readonly:true, width:80},
{name:strFieldValues[2], index:strFieldValues[2], editable:false, readonly:true, width:80,
hidden:false,sortable:true},
{name:strFieldValues[3], index:strFieldValues[3], editable:false, readonly:true, width:80}
],
postData: {},
rowNum: 10,
height: "100%",
shrinkToFit: true,
autowidth: true,
rownumbers: false,
pager: '#pager0',
sortname: 'id',
viewrecords: true,
sortorder: "asc",
emptyrecords: "Empty records",
loadonce: true,
sortable: true,
rowList: [6,10,20,40,60,80,100],
loadComplete: function() {
var grid0 = jQuery("#grid0");
var allDropDownElements = getAllDropDownElements0();
var allDropDownElementRefTables = getAllDropDownElementRefTables0();
processLoadComplete(grid0, allDropDownElements, allDropDownElementRefTables, 0);
},
gridComplete:function() {
var grid0 = $("#grid0");
var pager0Center = $("#pager0_center");
processGridComplete(grid0, pager0Center, 0);
onLoadpopulateName();
}
});
从4.3.2版本开始,jqGrid支持jQuery事件和回调。当时我花了很多时间来创建相应的pull请求,该请求被合并到jqGrid的主代码中。稍后在免费的jqGrid中,我更改了jqGrid的内部代码,以便实际上每个回调都有相应的jQuery事件。如果您需要编写公共操作(公共回调),这些事件非常重要,这些操作需要在项目的每个网格上完成。只有使用事件,才能编写不保留任何回调的jqGrid插件。
事件的使用非常简单。重要的是要理解,您可以在创建jqGrid之前绑定事件。处理事件jqGridBeforeInitGrid
(仅存在于自由jqGrid中)、jqGridInitGrid
、jqGridGridComplete
、jqGridAfterGridComplete
、jqGridLoadComplete
、jqGridAfterLoadComplete
尤为重要。
我建议您阅读描述gridComplete
和loadComplete
之间差异的答案。我个人几乎只使用loadComplete
,但回调的选择取决于您的确切要求。
让我们知道您确实需要使用commongridComplete
。然后,您可以选择在网格中使用的gridComplete
之后定义一些操作,或在其之前定义一些操作。根据您应该使用jqGridGridComplete
或jqGridAfterGridComplete
事件的选择。让我们jqGridAfterGridComplete
是您所需要的。然后代码可以显示为以下
$("#grid0").bind("jqGridAfterGridComplete", function () {
// the event handler will be executed AFTER gridComplete
...
});
$("#grid0").jqGrid({
// common options which you need
pager: "#pager0",
gridComplete:function() {
var $self = $(this), p = $self.jqGrid("getGridParam"),
pager0Center = $(p.pager + "_center"); //$("#pager0_center");
...
}
});
上面的代码将在jqGrid(从4.3.2版本开始)和免费的jqGrid中工作。如果您需要使用具有选项的事件,如jqGridAfterLoadComplete
,则应添加第一个附加事件参数,并使用以第二个参数开头的典型参数:
$("#grid0").bind("jqGridAfterLoadComplete", function (e, data) {
// the event handler will be executed AFTER loadComplete
...
});
顺便说一句,free jqGrid允许您使用pager: true
,而不定义空的<div id="pager0"></div>
。在无案例的情况下,jqGrid自动生成具有唯一id的div,并将jqGrid的pager
选项修改为id selecror。因此,您可以像上面的示例一样使用gridComplete
回调。有关详细信息,请参阅wiki文章。
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何消除代码中的未定义和其他问题
- JavaScript代码问题:我正在将对象转换为数组
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 由于iframe导致的问题
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- jqGrid中的gridComplete问题