更新表/自定义更新时,jqGrid显示默认的“加载”消息

时间:2010-04-10 19:28:22

标签: jqgrid loading message

我有一个案例需要根据用户选择的某些搜索条件更新jqgrid。我可以获取要更新的数据,但我希望在获取新数据时显示加载消息。有人可以让我知道如何让它工作吗?

当前代码如下


var ob_gridContents = $.ajax( {
 url : '/DisplayObAnalysisResults.action?getCustomAnalysisResults',
 data :  "portfolioCategory="+ $('#portfolioCategory').val() 
 +"&subPortfolioCategory="+ $('#subPortfolioCategory').val()
 + "&subportfolio=" + $('#subportfolio').val(),
 async : false
 }).responseText;
 var ob_Grid = jQuery('#OBGrid')[0];
 var ob_GridJsonContents = eval('(' + ob_gridContents + ')');
 $('#ob_Grid').trigger("reloadGrid"); 
 ob_Grid.addJSONData(ob_GridJsonContents);
 ob_Grid = null;
 ob_GridJsonContents = null;
}

1 个答案:

答案 0 :(得分:2)

如果我正确理解你的意思,我建议你使用jQuery blockUI插件(http://malsup.com/jquery/block/)。然后你不需要更多来使用$ .ajax函数的“async:false”参数,并执行以下操作:

var WaitMsg = function () {
    jQuery('#main').block({ message: '<h1>Die Daten werden vom Server geladen...</h1>' });
};
var StopWaiting = function () {
    jQuery('#main').unblock();
};

WaitMsg();
$.ajax({url : '/DisplayObAnalysisResults.action?getCustomAnalysisResults',
        data: jQuery.param({portfolioCategory: $('#portfolioCategory').val(),
                            subPortfolioCategory: $('#subPortfolioCategory').val(),
                            subportfolio: $('#subportfolio').val()}),
        complete: function (data, status) {
            if (status === "success" || status === "notmodified") {
                var ob_GridJsonContents = jQuery.parseJSON(data.responseText);
             ...
            }
            StopWaiting();
        },
        error: function (xhr, st, err) {
            // display error information
            StopWaiting();
        }
});

我建议您不要像

那样构建参数

“portfolioCategory =”+ $('#portfolioCategory')。val()  +“&amp; subPortfolioCategory =”+ $('#subPortfolioCategory')。val()  +“&amp; subportfolio =”+ $('#subportfolio')。val()

因为如果 .val()返回的数据有一些特殊字符,您可能会收到编码问题。在这种情况下你可以使用JavaScript函数 encodeURIComponent (比如 encodeURIComponent($('#portfolioCategory')。val())) 或 jQuery.param 功能,如果您构造一个字符串,如 p1 = val1&amp; p2 = val2&amp; ... pN = valN

最好的问候 奥列格