【问题标题】:Kendo Filter on parsed input value解析输入值的剑道过滤器
【发布时间】:2015-08-27 08:25:40
【问题描述】:

我的例子:http://dojo.telerik.com/oWABE/2

这里我有一个包含“状态”的数据对象,它是一个整数! (是 1,2 或 3)

在我的 Grid 中,掩码为 New、Pending 和 Closed

为了显示字符串(New、Pending 和 Closed),我在 shema 中创建了一个解析函数 -> 用于过滤以处理解析值,不能在列定义中使用模板,但必须在数据源!

Status: { type: "int",
         parse: function(status) {    
         console.log(status,"stat");            
           switch(status){
             case 1: return"New"; break;
             case 2: return"Pending"; break;
             case 3: return"Solved"; break;
             case 5: return"Closed"; break;
          }
     }
},

当这个解析器被调用时有一个“console.log”,我注意到之后!我过滤了日志中的“新”:

n stat
undefined "stat"

...当我第一次运行日志读取的页面时(如预期的那样):

1 "stat"
2 "stat"
3 "stat"

过滤器不起作用(尝试过滤“新”作为示例)

有什么帮助吗?

【问题讨论】:

    标签: parsing filter grid kendo-grid kendo-template


    【解决方案1】:

    我不确定这是否正确,但试试这个例子:

    .kendoDropDownList({
        dataSource: new kendo.data.DataSource({
            data: [
                { title: "Software Engineer" },
                { title: "Quality Assurance Engineer" },
                { title: "Team Lead" }
            ]
        }),
        dataTextField: "title",
        dataValueField: "title"
    });
    

    http://jsfiddle.net/jddevight/wGjCZ/

    【讨论】:

    • 谢谢它确实有效,但它是一个黑客。我找到了答案,几分钟后发布。再次感谢您
    【解决方案2】:

    需要用到“schema.parse 选项”!

    dataSource: {
                  data: data,
                  schema: {
                    parse: function(response) {
                      var products = [];
                      for (var i = 0; i < response.length; i++) {
                        switch(response[i].Status){
                          case 1: response[i].Status = "New"; break;
                          case 2: response[i].Status = "Pending"; break;
                          case 3: response[i].Status = "Solved"; break;
                          case 5: response[i].Status = "Closed"; break;
                        }   
                        console.log(response[i]);
                        products.push(response[i]);
                      }                         
                      return products;
                    },
                    model: {
                      fields: {                         
                        OrderID: { type: "number" },           
                        Status: { type: "string"},
                        ShipCountry: { type: "string" }
                      }
                    }
                  }
                },
    

    这是剑道的答案:http://www.telerik.com/forums/kendo-filter-on-parsed-input-value

    【讨论】:

      猜你喜欢
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多