2013-03-20 119 views
1

我有外部Web服務,所以我的控制器操作只是返回視圖與Kendo網格內。Kendo Grid綁定到字符串列表

的服務回報我這樣的結構:

{"Form":"xxx","Fields":["xxx","xxx","xxx"]} 

我感興趣的只是顯示Fields值。問題是Fields基本上是List<string>而不是KeyValuePair集合,所以我有一些麻煩將它綁定到網格。

我試圖使用解析事件,並以某種方式更改數據,但沒有成功。

到目前爲止,我有這樣的代碼在我看來:

<div id="alias-list-view" class="k-content"> 
    <div id="alias-list-grid" style="width: 400px"></div> 
</div> 

var aliasListDataSource = new kendo.data.DataSource({ 
    transport: { 
     read: { 
      url: "some_url", 
      dataType: "json" 
     } 
    }, 
    schema: { 
     data: "Fields", 
     parse: function (data) { 
      $.each(data, function (index, item) { 
       // not sure what to do 
      }); 
     } 
    }, 
    pageSize: 10 
}); 


$("#alias-list-grid").kendoGrid({ 
    autoBind: false, 
    dataSource: aliasListDataSource, 
    pageable: true 
}); 
+0

那麼您可以通過服務返回的數據的樣本?如果它是一個字符串列表,不應該有任何問題直接綁定到網格。 – Whizkid747 2013-03-20 16:05:03

+0

返回的數據是在初始文章 – 2013-03-20 19:47:00

+0

中定義的。我認爲真實的數據必須更好。希望解決方案幫助你。 – Whizkid747 2013-03-20 20:37:56

回答

2

,您可以定義parse功能如下:

parse: function (data) { 
    var fields = data.Fields; 
    var result = []; 
    $.each(fields, function (index, item) { 
     result.push({field: item }) 
    }); 
    return result; 
} 

然後是Grid

$("#alias-list-grid").kendoGrid({ 
    dataSource: aliasListDataSource, 
    pageable : true 
}); 

grid有一列,我們稱之爲field,在我們迭代的解析函數中(就像您已經這樣做了)並且編寫了fieldvalue的配對鍵值。

例子:http://jsfiddle.net/OnaBai/BEM3S/

+0

它的工作原理,謝謝:) – 2013-03-21 09:11:33

0

您需要進行架構的數據屬性返回一個函數,它做的manipualtion。檢查此琴:http://jsfiddle.net/whizkid747/9NsLR/3/

var dataFromService = {"Form":"xxx","Fields":["xxx1","xxx2","xxx3"]} 
var aliasListDataSource = new kendo.data.DataSource({ 
    //data:movies, 

schema:{ 
    data: function(response){ 
     var dataForDS = []; 


     var len = dataFromService.Fields.length; 

     for (var i = 0; i < len; i++) {      
      var obj = { 
       title : dataFromService.Fields[i] 
      };    
      dataForDS.push(obj);  
     }    
    return dataForDS; 
}  
} 
}); 
相關問題