Кнопка пользовательской панели инструментов Kendo Grid Включить / отключить - PullRequest
0 голосов
/ 04 октября 2018

У меня есть сетка кендо с кнопкой сохранения на панели инструментов.У меня есть предложенный столбец скидок, который можно редактировать, и если пользователь вводит целые числа от 0 до 100 (исключая десятичные дроби), кнопка сохранения должна быть видимой или включенной, иначе невидимой или отключенной.Мне удалось сделать кнопку невидимой или отключить, но когда они вводили правильное значение, кнопка не становилась видимой или включенной.Пожалуйста, помогите мне.Я только недавно начал работать над интерфейсом Kendo.

function setEnabled(enabled) {
    if (enabled) {
        // $(".k-grid-nstToolbarBtn").removeClass("k-state-disabled");
        $(".k-grid-nstToolbarBtn").show();
    }
    else {
        // $(".k-grid-nstToolbarBtn").addClass("k-state-disabled");
        $(".k-grid-nstToolbarBtn").removeAttr("href");
        $(".k-grid-nstToolbarBtn").hide();
    }
}



$('#NSTGrid').kendoGrid({
           toolbar: [{ type: "button", text: "Save", name: "nstToolbarBtn", className: "k-grid-saveData" }],
           dataSource: {
               data: data.ReportData,
               schema: {
                   model: {
                       fields: {

                           ProposedDiscount: {
                               validation: { 
                                   required: true,
                                   proposeddiscountvalidationcvalidation: function (input) {
                                       if (input.val() != "" && input.is("[name='ProposedDiscount']")) {
                                           input.attr("data-proposeddiscountvalidationcvalidation-msg", "Proposed Discount should be whole number");
                                           setEnabled(false);
                                           return input.val() >= 0 && input.val() < 101 && input.val() % 1 == 0;

                                       } else {


                                           setEnabled(true);
                                           return true;
                                       }
                                   }
                               }
                           },


                           ProductApprovedDiscount: { type: "decimal", editable: false },
                           BAN: { type: "string", editable: false },

1 Ответ

0 голосов
/ 04 октября 2018

Я думаю, что значение, переданное вашей функции setEnabled, должно совпадать с тем, что вы возвращаете в качестве результата проверки.Пожалуйста, попробуйте следующее изменение:

proposeddiscountvalidationcvalidation: function (input) {
    if (input.val() != "" && input.is("[name='ProposedDiscount']")) {
        input.attr("data-proposeddiscountvalidationcvalidation-msg", "Proposed Discount should be whole number");
        var valid = input.val() >= 0 && input.val() < 101 && input.val() % 1 == 0;
        setEnabled(valid);
        return valid;
    } else {
        return true;
    }
}
...