2014-03-19 39 views
3

我正在創建一個在本代碼中使用本地datasouce的kendo網格。導致TypeError r的Kendo Grid本地數據源未定義

var jsondata = [{ 
    abc: "Star Wars: A New Hope", 
    def: 1977, 
    ghi: 1977, 
    jkl: 1977, 
    mno: 1977, 
    pqr: 1977 
}]; 

$("div#@code").Grid({ 
    dataSource: { 
     data: jsondata, 
     schema: { 
      model: { 
       fields: { 
        abc: { type: "string" }, 
        def: { type: "number" }, 
        ghi: { type: "number" }, 
        jkl: { type: "number" }, 
        mno: { type: "number" }, 
        pqr: { type: "number" } 
       } 
      } 
     }, 
     pageSize: 20 
    }, 
    height: 430, 
    scrollable: true, 
    sortable: true, 
    filterable: true, 
    pageable: { 
     input: true, 
     numeric: false 
    }, 
    autoBind: true, 
    columns: [ 
      { title: 'abc', field: 'abc' }, 
      { title: 'def', field: 'def' }, 
      { title: 'ghi', field: 'ghi' }, 
      { title: 'jkl', field: 'jkl' }, 
      { title: 'mno', field: 'mno' }, 
      { title: 'pqr', field: 'pqr' }, 
     ], 
    }); 

.Grid是kendoGrid函數的擴展,因爲我需要定製網格。我打電話

//  Initialize the grid. 
kendo.ui.Grid.fn.init.call(that, element, options); 

當我測試代碼時,瀏覽器給我TypeError r是未定義的。在我做了我的研究之後,它是關於kendo網格試圖調用dataSource更新方法的,當然這個方法不存在,因爲我使用的是本地數據源。

我缺少一個選項來設置kendo網格不讀取遠程數據源,只使用本地數據源?

如果數據源是遠程的,那麼網格不會拋出錯誤並工作得很好。

回答

2

我把你的代碼複製粘貼到jsbin http://jsbin.com/qowilugo/1/edit。 我只需要從

$("div#@code").Grid({ 

改變1線你的代碼到

$("div#code").kendoGrid({ 

因爲電網功能,爲你解釋,是創建一個擴展/自定義的jQuery函數。 jsbin代碼正常工作。

您需要調試您的擴展/自定義jquery函數。也許有一部分代碼不符合本地數據源,例如,設置serverPaging,serverGrouping和transport選項。