【问题标题】:JQGrid confirmation box post saving edited dataJQGrid 确认框后保存编辑数据
【发布时间】:2017-07-11 08:50:04
【问题描述】:

我想在用户在 JqGrid 中编辑数据后单击“保存”后显示一个确认框。请在下面找到我的代码。

function FetchAccountMapping() {
    try {
        if (ValidateForm()) {
            var selectedsearchoption = $('#ddlSearchOption').val();

            $("#jqGrid").show();
            $("#jqGrid").jqGrid("clearGridData");

            if (!firstclick) {
                var url = '/utility/utilityhandler.aspx';
                $("#jqGrid").jqGrid('setGridParam', {
                    url: url,
                    postData: {
                        command: 'fetchmobileaccountmapping',
                        username: function () { return (selectedsearchoption == "username") ? $('#txtUsername').val() : ''; },
                        useremail: function () { return (selectedsearchoption == "useremail") ? $('#txtUseremail').val() : ''; },
                        useremailhash: function () { return (selectedsearchoption == "useremail") ? $('#txtUseremail').val().hashCode() : ''; }
                    },
                    onSelectRow: editRow
                });
                $("#jqGrid").trigger("reloadGrid");
            }
            else {
                $("#jqGrid").jqGrid({
                    url: '/utility/utilityhandler.aspx',
                    postData: {
                        command: 'fetchmobileaccountmapping',
                        username: function () { return (selectedsearchoption == "username") ? $('#txtUsername').val() : ''; },
                        useremail: function () { return (selectedsearchoption == "useremail") ? $('#txtUseremail').val() : ''; },
                        useremailhash: function () { return (selectedsearchoption == "useremail") ? $('#txtUseremail').val().hashCode() : ''; }
                    },
                    datatype: "json",
                    styleUI: "Bootstrap",
                    colNames: ["MobileAccountMappingID", "Username", "Email", "App Name", "Active"],
                    colModel: [
                        {
                            label: 'nMobileAppAccountUserMappingID',name: 'nMobileAppAccountUserMappingID',key: true,hidden: true,editable: true
                        },
                        {
                            label: 'Username',name: 'Username',width: 250,search: true,editable: true, editoptions: { readonly: "readonly" }
                        },
                        {
                            label: 'Email',name: 'Email',width: 500,search: true, editable: true, editoptions: { readonly: "readonly" }
                        },
                        {
                            label: 'nvcMobileAppName',name: 'nvcMobileAppName',width: 150,search: true, editable: true, editoptions: { readonly: "readonly" }
                        },
                        {
                            label: 'bDeactivated',name: 'bDeactivated',width: 150,editable: true,edittype: 'checkbox', editoptions: { value: "Yes:No" },
                        }
                    ],
                    viewrecords: true,
                    width: "auto",
                    height: "auto",
                    rowNum: 20,
                    loadonce: false,
                    pager: "#jqGridPager",
                    jsonReader: {
                        root: "Table",
                        repeatitems: false
                    },
                    gridview: true,
                    caption: "Mobile Account Mapping List",
                    //onSelectRow: editRow,
                    inlineEditing: {
                        keys: true
                    }
                });
                $("#jqGrid").jqGrid('inlineNav', '#jqGridPager',
                {
                    edit: true,add: false,del: false,search: false
                },
                {
                    zIndex: 100,
                    navkeys: false,
                    url: '/utility/utilityhandler.aspx?command=editnewsletter',
                    checkOnSubmit: true,
                    closeOnEscape: true,
                    reloadAfterSubmit: true,
                    afterComplete: function (response) {
                        var jsonResponse = $.parseJSON(response.responseText);
                        alert(jsonResponse.ResponseMessage);
                    }
                });
                firstclick = false;
            }
        }
    } catch (e) {
        alert(e);
    }
}

我试过checkOnSubmitbeforeSubmit。两者都不适合我。我尝试在 beforeSubmit 上调用一个函数并尝试在其中呈现一个对话框。即便如此也无济于事。

【问题讨论】:

    标签: jquery jqgrid jqgrid-asp.net


    【解决方案1】:

    也许您应该发布您尝试使用 beforeSubmit 事件的代码。 基本上这个事件应该返回数组(see Guriddo jqGrid documentation events

    你可以做的最简单的方法是:

    ...
    beforeSubmit : function( postdata, form , oper) {
        if( confirm('Are you sure you want to update this row?') ) {
            // do something
            return [true,''];
        } else {
            return [false, 'You can not submit!'];
        }
    }
    

    亲切的问候

    【讨论】:

    • 这不起作用。事件没有被触发。
    • 你把这个事件放在哪里了?它应该在编辑和/或添加导航器选项中设置
    • 请看下面的demohere
    猜你喜欢
    • 1970-01-01
    • 2013-02-11
    • 2015-01-02
    • 2017-10-06
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多