2013-08-19 9 views
7

Czy ktoś wie, czy siatka kendo może być zawsze ustawiona na tryb edycji przez cały czas?Czy Kendo Grid może być zawsze w trybie edycji?

Nie chcemy, aby użytkownik kliknął komórkę lub przycisk, aby aktywować tryb edycji. Chcemy, aby widżety były wyświetlane i dostępne przez cały czas.

Czy to w ogóle możliwe?

Odpowiedz

7

Po wyjęciu z pudełka, niezupełnie. Możesz włączyć edycję Batch, która wyświetla wszystko normalnie, ale kliknięcie komórki automatycznie przełącza ją do edytora.

Example

Aby ją włączyć, należy ustawić { batch: true } na źródła danych stołu. W przeciwnym razie przejdziesz do głębszych skryptów. Zaznaczone i po prostu wywołanie editRow we wszystkich wierszach nie robi tego. Domyślnym zachowaniem jest wyłączenie edycji w wierszu, gdy nowy zostanie włączony w tryb edycji.

Tak więc, szybki wygląd mówi Tryb wsadowy - nie będzie wyświetlał edytorów przez cały czas, ale działa i po wyjęciu z pudełka.

7

Oprócz używania trybu edycji partii można spróbować ustawić szablon każdej kolumny i powiązać elementy wejściowe z elementami danych za pomocą MVVM.

$("#grid").kendoGrid({ 
    dataSource: { 
    schema: { 
     model: { 
     id: "id", 
     fields: { 
      id: { editable: false } 
     } 
     } 
    } 
    data: [ 
     { id:1, age: 30, name: "John Doe" } 
    ] 
    }, 
    columns: [ 
    { field: "id", width: 50 }, 
    { field: "age", template: "<input data-bind='value: age' data-role='numerictextbox'>" }, 
    { field: "name", template:"<input data-bind='value: name' >" } 
    ], 
    dataBound: function() { 
    var rows = this.tbody.children(); 
    var dataItems = this.dataSource.view(); 
    for (var i = 0; i < dataItems.length; i++) { 
     kendo.bind(rows[i], dataItems[i]); 
    } 
    } 
}); 

Oto live demo: http://jsbin.com/ApoFobA/2/edit

+0

Dzięki za to. To jest najbliższa odpowiedź na to, czego potrzebuję. – ThiagoPXP

+0

Dziękuję również. To zadziałało dla mnie świetnie, dopóki nie włączyłem grupowania i po grupowaniu przez kolumnę wszystkie pola wejściowe były wygaszone. Jeden problem w dół, jeszcze jeden ... .... – wavedrop

1

znalazłem powyższą odpowiedź jest doskonałe. Jedną z kwestii jest to, że Kendo nie oczyszcza wiązań, gdy odświeża siatkę (na przykład podczas sortowania lub filtrowania lub gdy jest wywoływane odświeżanie()) i usuwa elementy DOM siatki. W rezultacie dane itemItems będą miały rosnącą liczbę oczekujących "zmian" w kolejce - trochę wycieku pamięci. Można tego uniknąć przez odłączenie w przypadku dataBinding, jak poniżej:

dataBinding: function() { 
    var rows = this.tbody.children(); 
    for (var i = 0; i < rows.length; i++) { 
    kendo.unbind(rows[i]); 
    } 
} 
Powiązane problemy