2017-08-18 1 views
1

J'essaie de modifier la valeur de certaines colonnes dans la grille de kendo conditionnellement. Comme l'identifiant de la grille est déjà lié à certaines données, il a besoin de quelques modifications dans les données qui sont déjà liées.Modifier les données de colonne dans la grille de kendo conditionnellement

J'ai utilisé quelques exemples de codes que j'ai reçus de stackoverflow mais aucun d'entre eux ne reflète. Il n'y a pas de changement dans les données de la grille

1er chemin

var grid = $("#grid").data("kendoGrid"); 

      var items = grid.dataSource.data(); 
      for (var i = 0; i < items.length; i++) { 
       items[i]["MatchCount"] = "4"; 
      } 

2ème méthode éprouvée

var dataItem = $("#grid").data("kendoGrid").dataSource.data()[0]; 
     dataItem.set("MatchCount", "CCC"); 

3ème voie

var dataItem = $("#grid").data("kendoGrid").dataSource.data()[0]; 
    dataItem.set("MatchCount", "50"); 

La grille de façon est liée est ci-dessous:

$("#grid").kendoGrid({ 
     dataSource: DataSource, 

     columns: 
     [ 
      { field: "RowId", title: "RowId", hidden: true }, 
      { 
       field: "LastName", 
       title: "Last Name", 
       width: 150, 
       editable: false, 
       headerTemplate: createHeaderTemplate("Last Name") 

      }, 
      { 
       field: "MatchCount", 
       width: 120, 
       editable: false, 
       template: "#if(MatchCount == 0){#<span>#=MatchCount#</span>#}else{#<a href='javascript:void(0)' onclick='ShowMatches(&quot;#=LastName#&quot;,&quot;#=FirstName#&quot;,${MatchCount},&quot;#=MatchIds#&quot;);' style='margin-left:50px' >#=MatchCount#</a>#}#" 
      } 

     ], 
     edit: function (e) { 
      //e.container.find("input[name='Name']").each(function() { $(this).attr("disabled", "disabled") });  
     }, 
     editable: false 
    }); 

Répondre

0

Vous faites ok dans les tentatives 2 et 3. Peut-être que vous avez besoin d'exécuter refresh() méthode:

dataItem.set("MatchCount", "50"); 
grid.refresh(); 

Demo