使用kendo网格的bug,关闭弹出编辑器,需要多次按取消

时间:2017-09-25 08:07:23

标签: javascript jquery kendo-ui kendo-grid

它超过一周即时处理kendo网格的奇怪行为,让我分解我的问题,为了更好地理解,我有一个自动完成文本框,在我按ENTER后,它绑定我的网格,当我按“添加新记录“在我的剑道网格上,如果我按下取消,弹出将关闭,BUTTT在第二次搜索后添加新记录,如果按取消,此时需要2次按,3d时间需要3次按......让我发疯,非常需要你的帮助

这是代码

    $(document).keypress(function (e) {

        var myResult;
        var modelProducerResult;
        var temp = null;
        var mydata;
        var mydata_deviceType;
        var modelProducerDrpList;
        if (e.which == 13) {
            var i = 0;
            debugger;
            var flag = 0;
            // $('#turbingrid').data().kendoGrid.refresh();
            var drp = document.getElementById('autocomplete').value;
            $.ajax({
                dataType: "json",
                type: "POST",
                url: "@Url.Action("turbineDeviceDetail","AdminTool")",
                contentType: "application/json; charset=utf-8",
                data: JSON.stringify({ "turbine": drp, }),

                success: function (result) {
                    //debugger;
                    myResult = result;
                    var flg = "s";
                    $.ajax({
                        dataType: "json",
                        type: "POST",
                        url: "@Url.Action("producersDevice","AdminTool")",
                        contentType: "application/json; charset=utf-8",
                        data: JSON.stringify({ "flg": flg, }),
                        success: function (data) {
                            //    debugger;
                            mydata = data;
                        }
                    })

                    var flg_dvType = "s";
                    $.ajax({
                        dataType: "json",
                        type: "POST",
                        url: "@Url.Action("deviceTypeList","AdminTool")",
                        contentType: "application/json; charset=utf-8",
                        data: JSON.stringify({ "flg": flg_dvType, }),
                        success: function (data) {
                            //    debugger;
                            mydata_deviceType = data;

                        }

                    });

                    dataSource = new kendo.data.DataSource({
                        transport: {
                            read: function (options) {
                                options.success(result); // where data is the local data array

                            },

                            create: function (options) {


                                if ($("input[name='DeviceIP']").val() == "" || $("input[name='TurbineId']").val() == "") {
                                    alert("DeviceIP and TurbineID could not be blank ");
                                    $("input[name='DeviceIP']").css("background-color", "red");
                                    $("input[name='TurbineId']").css("background-color", "red");

                                }
                                else


                                    $.ajax({
                                        type: "POST",
                                        url: "@Url.Action("AddDeviceToTurbine","AdminTool")",
                                        data: options.data.models[0],
                                        dataType: "json",
                                        success: function (data) {
                                            options.success(data);
                                            alert("New Device Has Been Inserted");
                                            //var e = $.Event("keypress", { which: 13 });
                                            //$('#autocomplete').trigger(e);


                                        },
                                        //error: function (data) {
                                        //    options.error(data);
                                        //    alert("Insert New Data Has Been Failed");
                                        //    alert(data);

                                        //},
                                        error: function (xhr, status, error) {
                                            alert(xhr.responseText);

                                        }
                                    });

                            },
                            update: function (options) {

                                if ($("input[name='DeviceIP']").val() == "" || $("input[name='TurbineId']").val() == "") {
                                    alert("DeviceIP and TurbineID could not be blank ");

                                    $("input[name='DeviceIP']").css("background-color", "red");
                                    $("input[name='TurbineId']").css("background-color", "red");
                                }
                                else
                                    $.ajax({
                                        type: "POST",
                                        url: "@Url.Action( "update_grid","AdminTool")",
                                        data: options.data.models[0],
                                        dataType: "json",
                                        success: function (data) {
                                            options.success(data);
                                            alert("Update Has Been Done!");
                                            var value = document.getElementById('autocomplete').value;
                                            var e = $.Event("keypress", { which: 13 });
                                            $('#autocomplete').trigger(e);

                                        },
                                        error: function (data) {
                                            options.error(data);
                                            alert("Update Failed!");
                                        },
                                    });


                            },

                            parameterMap: function (options, operation) {
                                if (operation !== "read" && options.models) {
                                    return { models: kendo.stringify(options.models) };
                                }
                            }
                        },
                        batch: true,
                        pageSize: 40,
                        schema: {
                            //data: employee,
                            model: {
                                id: "DeviceIP",
                                fields: {
                                    DeviceIP: { editable: true, nullable: false },
                                    //Producer: { type:"string" },
                                    //3 Model: { type: "string" },
                                    DeviceType: { type: "string" },
                                    Description: { type: "string" },
                                    Username: { type: "string" },
                                    Password: { type: "string" },
                                    PublicIP: { type: "string" },
                                    ModelProducer: { type: "string" },
                                    Model: { type: "string" },
                                    Producer: { type: "string" },
                                    TurbineId: { type: "string" }
                                    //UnitPrice: { type: "number", validation: { required: true, min: 1} },
                                    //Discontinued: { type: "boolean" },
                                    //UnitsInStock: { type: "number", validation: { min: 0, required: true } }
                                }
                            }
                        }


                    });

                    $("#turbingrid").kendoGrid({
                        //   debugger;

                        dataSource: dataSource,
                        scrollable: false,

                        //toolbar: ["create"],
                        toolbar: [
                                 {
                                     name: "create",
                                     text: "ADD NEW DEVICE"
                                 }
                        ],

                        columns: [
                                 { field: 'DeviceIP', title: 'DeviceIP', width: '100px', id: 'DeviceIP' },
                                 { field: 'Producer', title: 'Producer', width: '80px', id: 'Producer' },//editor: ProductNameDropDownEditor,
                                 { field: 'Model', title: 'Model', width: '220px', id: 'Model' },
                                // { field: 'DeviceType', title: 'DeviceType', width: '100px', id: 'DeviceType', editor: deviceTypesList },
                                 { field: 'Description', title: 'Description', width: '220px' },
                                 { field: 'Username', title: 'Username', width: '120px' },
                                 { field: 'Password', title: 'Password', width: '100px' },
                                 { field: 'PublicIP', title: 'PublicIP', width: '120px', id: 'PublicIP' },
                                 { field: 'TurbineId', title: 'TurbineId', width: '120px', id: 'TurbineId', hidden: true },
                                 { field: 'device_id', title: 'device_id', width: '120px', id: 'deviceid', hidden: true },
                               //  { field: 'ModelProducer', title: 'Producer/Model', id: 'ModelProducer', hidden: true, editor: modelPro },
                                 {
                                     command: ["edit"], title: " "

                                 }
                        ],




                        editable: "popup",

                    });
                }
            })
        }
    });


    //This Part Is For The AUTOCOMPLETE textbox

    $(document).ready(function () {
        var value = document.getElementById('autocomplete').value;
        $.ajax({
            dataType: "json",
            type: "POST",
            url: "@Url.Action("List_Turbine","AdminTool")",
            contentType: "application/json; charset=utf-8",
            //data: JSON.stringify({ "name": value ,}),
            data: {},
            success: function (result) {
                $("#autocomplete").kendoAutoComplete({
                    dataSource: result,
                    dataTextField: "Text",


                    // filter: "contains"

                });


            }
        })

    });

0 个答案:

没有答案