2016-08-26 1 views
1

Ich habe eine TreeView und ich möchte einige Knoten deaktivieren, wenn sie in ihren Daten eine state_current != null wie die Schaltfläche "Knoten deaktivieren" in demo enthalten.Deaktivieren Sie einen Kendo-UI TreeView-Knoten

mein Code:

<script> 
    $(document).ready(function() { 

     var treeview = $('#Tree_view').kendoTreeView({ 
      template: "#= item.name #", 
      dataSource: Parcours, 
      dataTextField: 'name', 
      loadOnDemand: true, 
      expand: onExpandedItem 
     }); 
    }); 

    function onExpandedItem(e) { 

     var id_user = @Model.id; 

     var item = $('#Tree_view').data('kendoTreeView').dataItem(e.node) 

     var type = item.fields.type; 

     if (item.level() > 0) { 
      item.id_parcours = item.parentNode().id_parcours; 
      if (item.level() == 2) { 
       item.id_promo = item.parentNode().id; 
      } 
     } 
     else item.id_parcours = item.Id; 

     switch (type) { 
      case 'parcours': 
       item.children.transport.options.read = { 
        url: '@Url.Action("Get_Session", "Users")' + '?user_id=' + id_user, 
        dataType: "json", 
       }; 
       break; 

      case 'session': 
       item.children.transport.options.read = { 
        url: '@Url.Action("Get_Matiere")' + '?user_id=' + id_user, 
        dataType: "json" 
       }; 
       break; 

      default: 
       break; 
     } 
    } 

    var Matiere = { 
     transport: { 
      read: { 
       url: '@Url.Action("Get_Matiere")', 
       type: 'GET', 
       dataType: 'json' 
      } 
     }, 
     schema: { 
      model: { 
       fields: { 
        name: 'Name', 
        type: 'matiere' 
       }, 
       hasChildren: false, 
      } 
     } 
    } 

    var Session = { 
     transport: { 
      read: { 
       url: '@Url.Action("Get_Session")', 
       type: 'GET', 
       dataType: 'json' 
      } 
     }, 
     schema: { 
      model: { 
       fields: { 
        id: 'IdPromo', 
        name: 'NamePromo', 
        type: 'session', 
        date: 'Date', 
        state: 'State_current', 
       }, 
       hasChildren: true, 
       children: Matiere 
      } 
     } 
    } 

    var Parcours = { 
     transport: { 
      read: { 
       url: '@Url.Action("Get_Parcours", "Users")', 
       data: {user_id: @Model.id}, 
       type: 'GET', 
       dataType: 'json' 
      } 
     }, 
     schema: { 
      model: { 
       fields: { 
        id: 'Id', 
        name: 'Name', 
        type: 'parcours' 
       }, 
       hasChildren: true, 
       children: Session 
      } 
     } 
    }; 
</script> 
+0

* Wenn * Sie deaktivieren möchten? Wenn auf den Knoten geklickt wird; Wenn Benutzer auf eine Schaltfläche zum Deaktivieren klicken, um alle Knoten gleichzeitig zu deaktivieren? Das ist noch nicht klar. – DontVoteMeDown

+0

Knoten kann zu Beginn deaktiviert werden, hängt von der Variable "State_current" ab und ich möchte mit einer Schaltfläche gemäß "State_current" deaktivieren/aktivieren (State_current = null -> kann deaktivieren/State_current! = Null -> kann aktivieren) . –

Antwort

1

dies tun, wo Sie die Knoten

var selectedNode = treeview.select(); 
    treeview.enable(selectedNode, false); 

Hier treeview sollte Ihr treeview Objekt sein deaktivieren möchten, können Sie diesen auswählen, wie unten, sobald die treeview erstellt . Und anstelle von selectedNode können Sie den Knoten angeben, den Sie deaktivieren müssen.

var treeview = $('#Tree_view').data("kendoTreeView");

Wenn Sie dies tun wollen, während die treeview macht zuerst prüfen Sie dies in kendoTreeView Databound-Ereignis oder in select-Ereignis, wenn Sie es während der Auswahl möchten.

+0

Hallo Karthik Sivaraj, danke für deine Hilfe, es ist Arbeit !! –

+0

Glücklich, dass es dir geholfen hat. Prost :-) –