2016-12-01 71 views
0

我有兩個劍道網格(A,B)...乙其通過點擊在A和它的數據源中裝入了它通過在阿..如何防止劍道網格重新加載?

A.accounts所選擇的行的屬性加載

​​

我的問題是,在商務智能必須改變一個屬性使用網格,但當它的屬性改變了它的網格重新加載,如果我有1000行時,我改變了網格中的屬性(anyrow,999 ie),回滾到開始 ...我已閱讀並嘗試瞭解它,但無法修復它...根據官方文檔,所選的行由

var row = this.gridApprovals.select(); 
var caBean = this.gridApprovals.dataItem(row); 

它是一種ObservableObject,所以,當我試圖更改屬性,有些方法(ObservableOject的),它使這種行爲,和電網的重裝上陣,它的每一個迭代數據源項...

編輯: 我忘了提..其重要保持B方格紋的變化及其在一個種選擇關係之間的關係.. 這裏是一個道場項目http://dojo.telerik.com/uYemI/2

+0

您至少需要提供您的網格定義。更好的是,提供一個指向Kendo Dojo示例的鏈接,展示該問題。 –

+0

謝謝..我已經做到了....這裏是鏈接http://dojo.telerik.com/uYemI/2 –

+0

我真的不知道如何解決它,但它是k-rebind =「 carsGridOptions「導致它...當editCell觸發時,此屬性導致k-rebind啓動,因此setGridOptions觸發重新綁定整個數據源(並重置網格)。您需要找到一種方法,只需將新數據推入網格,而不使用k-rebind(由於某種原因而在編輯時觸發)。所以基本上,每個editCell都會導致網格重新初始化它的dataSource(通過k-rebind映射),從而導致重新讀取。我們不需要那樣做;;) –

回答

0

這個怎麼樣?

http://dojo.telerik.com/@Stephen/aNije

我刪除了K-重新綁定屬性,而不是線了您的setCarsGrid內的數據源()方法:

$scope.setCarsGrid = function() { 
      var row = this.brandGrid.select(); 
      var brand = this.brandGrid.dataItem(row); 
          var brandObj=brand.toJSON(); 

      var dataSource = new kendo.data.DataSource({ 
       data: brand.cars, 
       schema:{ 
       model:{ 
        fields:{ 
        id:{editable:false}, 
        model:{editable:false}, 
        color:{type:"string"} 
        } 
       }, 
       parse: function(response) { 
        $.each(response, function(idx, elem) { 
        elem.id = elem.id+10; 
        //if you put a break point here, every time you try to edit 'color' field.. will be stop because datasourse is iterated again 
        console.log("Grid has been reloaded and the editable field 'color' can be edited :'(the id property has been added +10") 
        }); 

        return response; 
       }          
       } 
      }); 

      // This first time this is called, the carsGrid has not been initialized, so it doesn't exist. 
      // But subsequent times, we just need to set the new datasource. 
      if (this.carsGrid) { 
      this.carsGrid.setDataSource(dataSource); 
      } 

      $scope.carsGridOptions = { 
        dataSource: dataSource, 
        selectable:true, 
        editable: true, 
        columns: [{ 
         field: "id", 
         },{ 
         field: "model", 
         },{ 
         field: "color", 
        }] 
       };      

     } 

從本質上講,我只是從設置分離網格初始化網格的DATASOURCE。 第一次通過設置網格選項並設置數據源,然後設置數據源,然後將網格設置爲新的數據源。

這就避免了K-重新綁定的行爲......我相信這是記錄:因爲這些部件是在他們的數據,例如每次改變重新http://docs.telerik.com/kendo-ui/AngularJS/introduction#widget-update-upon-option-changes

這種方法並不適用於數據綁定控件,分頁後的網格。

請注意,我並不真正知道角度,所以可能有更好的方法來組織此代碼,但它的工作原理。

+0

它看起來不錯,但在我的項目不起作用,我認爲它是我的劍道版本,我忘了在dojo中設置版本..即時通訊使用Kendo UI 2015 Q2 ..並看起來像我不能設置dataSource這樣... humm –

+0

嗨..在一些實驗後,我已經使用this.carsGrid.setOptions,這裏是一個道奇與mi最終代碼...謝謝@The恐怖海盜斯蒂芬爲你的幫助.... http://dojo.telerik.com/@alfonsomonroyiv/oneJA –