剑道UI网格内联编辑为最小验证定义自定义值



我正在使用剑道网格,并希望通过同一记录中的另一个字段验证一个字段的最小值。

意味着我的数据是这样的:-

var courses = [{
    CourseID : 1,
    CourseName : "iPhone",
    MinAge: 12,
    MaxAge : 22,
    MinAgeThreshold : 10,
    MaxAgeThreshold : 30,
    StartDate: "12/10/2014",
},
{
    CourseID : 2,
    CourseName : "Android",
    MinAge: 12,
    MaxAge : 22,
    MinAgeThreshold : 10,
    MaxAgeThreshold : 30,
   StartDate: "12/10/2014",
}]

和我想使用MinAgeThreshold值在MinAge的验证最小值,像这样:-

schema: {
               model: {
                 id: "CourseID",
                 fields: {
                    CourseID: { editable: false, nullable: true },
                    StartDate: { editable: false, nullable: true },
                    CourseName: { editable: false, nullable: true },
                    MinAgeThreshold: { editable: false, nullable: true },
                    MinAge: { type: "number", validation: { required: true, min: MinAgeThreshold}                        },
                    MaxAge: { type: "number", validation: { required: true, min: 1} },
                 }

这可能吗?

我尝试在验证中使用这样的自定义函数

MinAge: {
                                type: "number",
                                validation: {
                                    required: true,
                                    minagevalidation: function (input) {
                                }
                            },

但是我无法在minagvalidation函数中检索MinAgeThreshold的值。

任何帮助都将是非常感激的。

您可以尝试如下所示来提供自定义验证消息,并强制用户设置值大于基于同一剑道网格中其他输入字段的最小值。

 MinAge: { type: "number",
                    validation: { 
                    required: true, 
                    MinAgevalidation: function (input) {
    if(input.is("[name='MinAge']") &&(parseInt($("input[type='text'][name='MinAge']").val()) < parseInt($("input[type='text'][name='UnitPrice']").val()))){
    input.attr("data-MinAgevalidation-msg", "MinAge should greater than MinAge threshold");
            return false;
    }
    return true;  
    }  
设置一个字段的最小值。

我想我可能有一个解决这种问题的方法。如果你想通过不同字段的值来设置字段的最大值,你可以将其添加到kendogrid的网格编辑方法中。

var grid = $("#grid").kendoGrid({
    edit: function(e){
        if ( e.container.find("input[data-find='value:MinAge']).length != 0 ){
            var numericTextBox = e.container.find("input[data-find='value:MinAge']).data("kendoNumericTextBox");
            numericTextBox.min(e.model.MinAgeThreshold);
        }
    }   
});

这将设置MinAge输入的numerictTextBox为行(模型)的dataItem中的MinAgeThreshold的最小值。这也适用于step, max,等等。当您输入该字段时将触发编辑。所以如果初始值是0而你的MinAgeThreshold是别的值它就会切换到MinAgeThreshold

相关内容

  • 没有找到相关文章

最新更新