仅在第一次加载jqgrid时运行方法

时间:2012-02-23 07:55:53

标签: jquery jqgrid

当我加载我的jqgrid时,我在loadcomplete部分中按以下方式填充我的过滤器工具栏选择框:

$(".ui-search-toolbar").find("select").each(function (index, value) {
    getDropdowndata($(this).attr('NAME'));
});

问题是每次重新加载网格时都会运行此代码。这会导致选择框在我通过单击几个页面时填充多个值。

我想要的是仅在第一次加载网格时运行此代码。

2 个答案:

答案 0 :(得分:2)

最简单的解决方案是使用布尔变量并检查填充是否已经完成

var isPopulated = false;

...

function onLoadComplete(){
   if(!isPopulated){
      //your code here
      isPopulated = true;
   }
}

答案 1 :(得分:1)

loadComplete: function (data) {
    var $this = $(this),
        datatype = $this.getGridParam('datatype');

    if (datatype === "xml" || datatype === "json") {
        setTimeout(function () {
            $this.trigger("reloadGrid");
        }, 100);
    }
}

这只会执行一次。在这个帖子上找到了这个。 Default sorting of jqgrid on particular field when grid loads