2015-05-24 20 views
11

Devo implementare una griglia con voci modificabili. Uno dei campi di entità è un elenco di stringhe. Ad esempio, è un elenco di ordini e ogni ordine può avere più numeri di tracciamento. Quindi ho bisogno di implementare un widget che supporterà la visualizzazione dell'elenco di entità, la possibilità di aggiungere e cancellare elementi. E (la cosa più importante) deve funzionare all'interno della griglia di Kendo.Griglia Kendo con elenco modificabile in linea

Così ho costruito un widget campione ...

(function (jQuery) { 

var ui = kendo.ui; 
var Widget = ui.Widget; 

var TrackingNumbersList = Widget.extend({ 
    addEntryToList: function (event, value) { 
     if (value == undefined) { 
      var value = this.valueInput.val(); 
      if (value != null && value != "") { 
       this.addEntryToList(event, value); 
      } 
     } else { 
      this.domElement.find("div#valuesContainer").append($j("<div valueContainer></div>").html(value)); 
      this.valueInput.val(''); 
     } 
    }, 
    clear: function() { 
     this.domElement.find("div[valueContainer]").remove(); 
    }, 
    renderInterface: function() { 
     var that = this; 

     this.domElement.append("<div id='valuesContainer'></div>"); 
     this.valueInput = $j("<input id='txtValue' type='text' />"); 

     this.domElement.append(
     $j("<div></div>").append(this.valueInput) 
     .append($j("<input type='button' value='Add' />").click($j.proxy(that.addEntryToList, that))) 
     .append($j("<input type='button' value='Delete all' />").click($j.proxy(that.clear, that))) 
     ); 
    }, 
    init: function (element, options) { 
     this.domElement = $j(element); 
     this.renderInterface(); 
     Widget.fn.init.call(this, element, options); 
     this.element = element; 
    }, 

    options: { name: "TrackingNumbersList" }, 
    value: function() { 
     var result = []; 
     this.domElement.find("div[valueContainer]").each(function (index, el) { 
      result.push($j(el).html()); 
     }); 
     return result; 
    }, 
    value: function (val) { 
     this.clear(); 
     var that = this; 
     $j(val).each(function (index, value) { 
      that.addEntryToList(null, value); 
     }); 
    } 
}); 
ui.plugin(TrackingNumbersList);})(jQuery); 

e ora voglio chiedere se qualcuno ha un idea di come ottenere questa roba di lavoro all'interno Kendo griglia. Apprezzo qualsiasi aiuto.

risposta

1

Se ho capito bene, il kendo multi select control dovrebbe fare il lavoro. Penso che sarebbe molto più facile da usare nella griglia kendo

+0

Sto cercando di capire come costruire un widget che funzioni bene all'interno di Kendo Grid. Voglio davvero capire questo. –

0

Prova un EditorTemplate con griglia modifica inline, Questo potrebbe risolvere il tuo problema

+0

Fornisci un codice di esempio in modo che l'utente possa capire più chiaramente – Golda

0

È possibile utilizzare il Editing-inline come questo. Puoi aggiungere, modificare ed eliminare un record nella griglia del kendo.