2014-01-27 4 views
0

Я пытаюсь использовать пользовательские правила валидации с сетью данных веб-интерфейса Kendo, но я не смог заставить его работать. Я могу подключить настраиваемое правило к сетке, и оно вызвано, когда пользователь покидает ячейку сетки. Функция rule также возвращает false, чтобы указать, что вход недействителен. Но сообщение об ошибке не отображается после удаления имени из ячейки и последующего выделения. Что мне не хватает?Kendo Grid Пользовательские правила валидации не работают

JSFiddle: http://jsfiddle.net/davidsalahi/qMRBc/

var validatorRules = { 
    rules: { 
     // This rule is executed when leaving a cell but the return value of false doesn't display any error message or prevent leaving the cell 
     customRule1: function (input) { 
      // OpCode must not be empty 
      if (input.attr("name") == "ProductName") { 
       return $.trim(input.val()) !== ""; 
      } 
     } 
    }, 
    messages: { 
     customRule1: "All fields are required" 
    } 
}; 

ответ

1

Создание пользовательского правила проверки на вашей настройки источника данных,

Я попытался на своем jsfiddle и работал правильно.

http://jsfiddle.net/pehlizm/qMRBc/4/

var crudServiceBaseUrl = "http://demos.telerik.com/kendo-ui/service", 
    dataSource = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: crudServiceBaseUrl + "/Products", 
       dataType: "jsonp" 
      }, 
      parameterMap: function (options, operation) { 
       if (operation !== "read" && options.models) { 
        return { 
         models: kendo.stringify(options.models) 
        }; 
       } 
      } 
     }, 
     batch: true, 
     pageSize: 20, 
     schema: { 
      model: { 
       id: "ProductID", 
       fields: { 
        ProductID: { 
         editable: false, 
         nullable: true 
        }, 
        ProductName: {     //changes starts here 
         type: "string", 
         validation: { 
            custom: function(input) { 
             // set the custom message 
             input.attr("data-custom-msg", "Error"); 

              if (input.attr("name") == "ProductName") { 
              return $.trim(input.val()) !== ""; 
            } 
            } 
           } 
         },       //ends here 
        UnitPrice: { 
         type: "number", 
         validation: { 
          required: true, 
          min: 1 
         } 
        } 
       } 
      } 
     } 
    }); 
+0

Привет user2688655, Спасибо для смотреть мой jsfiddle. Вы говорите, что это сработало? Без изменений? –

+0

.Hi @DavidSalahi есть изменения. Часть валидации немного изменилась, и она переместилась в настройки модели, – MustafaP

+0

Я вижу. Спасибо за разъяснения. –

Смежные вопросы