在新对话框中添加消息jqGrid(navGrid)

时间:2012-12-17 09:28:54

标签: jquery jqgrid return message

您好我在添加操作中有navGrid定义。

Grid.id >> $("#<%=Me.Id & "_" %>lstPreciosSUD")

{ width: 350, resize: false, closeAfterAdd: false, recreateForm: true,
    clearAfterAdd:false, viewPagerButtons: true, afterComplete: estadoReplicado,
    ,afterSubmit: function(response) { 
                if (response.responseText == "OK") {

                    alert("we are inside");

                    var myInfo = '<div class="ui-state-highlight ui-corner-all">' +
                        '<span class="ui-icon ui-icon-info" ' +
                        'style="float: left; margin-right: .3em;"></span>' +
                        '<span>Registro insertado correctamente!</span></div>',
                    $infoTr,
                    $infoTd;
                    $infoTr = $("#TblGrid" + "<%=Me.Id & "_" %>lstPreciosSUD" + ">tbody>tr.tinfo");
                    $infoTd = $infoTr.children("td.topinfo");
                    $infoTd.html(myInfo);
                    $infoTr.show();

                    setTimeout(function () {
                        $infoTd.children("div")
                            .fadeOut("slow", function () {
                                  $infoTr.hide();
                            });
                    }, 6000);

                        //alert("Registro creado.");
                        return [true,''];
                } 
                else { 
                        return [false, "Error creando precio de suplemento!"];
                } 
            },
    beforeSubmit: function(postdata){ 
        if ((postdata.tpb_importe == "") || (postdata.fini == "") || (postdata.ffin=="")) {
            return[false,"Importe y fechas es obligatorio!"]; 
        } else { return [true,""] }
    }
}}

在第二个或日期的输入中,如果为空,则此返回(return [false,"Importe y fechas es obligatorio!"] ")会在beforeSubmit对话框中向我返回一条红色消息,如http://i.imgbox.com/ackwIZvQ.jpg

在这种情况下我必须使用closeAfterAdd:falseclearAfterAdd:false,但我想知道并且我认为使用afterSubmit来显示绿色(例如)消息,如果一切正常有一个小功能来做这个,但如果我使用上面的afterSubmit函数,并且它没关系,不显示任何消息,如错误消息,是否可以显示任何确定的消息?如果有错误,它会以红色显示我在背景中看不到它如何添加新记录,但在对话框中不显示任何消息。

感谢。

1 个答案:

答案 0 :(得分:2)

如果我理解你的错误,你会在the answer中找到这种实施的一个例子(参见the demo)。它显示了如何使用添加自定义文本的方式与添加标准错误消息的方式相同。在演示中,我使用errorTextFormat模拟加载。您应该在afterSubmit中移动显示成功消息的代码。

更新afterSubmit的代码可能看起来像(我没有测试代码)

afterSubmit: function (jqXHR) {
    var myInfo = '<div class="ui-state-highlight ui-corner-all">' +
            '<span class="ui-icon ui-icon-info" ' +
            'style="float: left; margin-right: .3em;"></span>' +
            '<span>The row is successfully added</span></div>',
        $infoTr,
        $infoTd;

    if (jqXHR.responseText !== "OK") {
        return [false, jqXHR.responseText];
    }

    $infoTr = $("#TblGrid_" + $.jgrid.jqID(this.id) + ">tbody>tr.tinfo"),
    $infoTd = $infoTr.children("td.topinfo");
    $infoTd.html(myInfo);
    $infoTr.show();

    // hide the info after 3 sec timeout
    setTimeout(function () {
        $infoTd.children("div")
            .fadeOut("slow", function () {
                // Animation complete.
                  $infoTr.hide();
            });
    }, 3000);
}