2012-11-21 21 views
12

Używam KendoGrid i robię edycję wsadową. Tylko kilka wybranych kolumn można edytować. Po kliknięciu na zakładkę wybrana jest następna kolumna, ale nie jest to kolejna kolumna do edycji. Czy istnieje sposób kontrolowania kolejności kart w KendoGrid? Jak sprawić, by karty pomijały kolumny, których nie można edytować?Jak zmienić kolejność zakładki KendoGrid?

Moja Mark-UP:

<div id="employeeGoalsGrid"></div> 

My Javascript:

var goalsDataSource = new kendo.data.DataSource({ 
     transport: { 
      read: { 
       url: '/MVC/ResearcherPoints/GetEmployeeResearchers', 
       type: 'POST', 
       contentType: 'application/json' 
      }, 
      update: { 
       url: '/MVC/ResearcherPoints/UpdateEmployeeGoal', 
       type: 'POST', 
       contentType: 'application/json' 
       //dataType: "jsonp" 
      }, 
      parameterMap: function (options, type) { 
       debugger; 
       $.extend(options, { ID: options.id }); 
       return JSON.stringify(options); 
      } 
     }, 
     batch: false, 
     schema: { 
      model: { 
       id: 'ID', 
       fields: { 
        id: { editable: false, nullable: false }, 
        FirstName: { editable: false, nullable: true }, 
        LastName: { editable: false, nullable: true }, 
        Title: { editable: false, nullable: true }, 
        TeamName: { editable: false, nullable: true }, 
        PointsGoal: { type: "number", nullable: true, validation: { required: false, min: 1 } } 
       } 
      } 
     }, 
     sortable: true, 
     filterable: true, 
     columnMenu: true 
    }); 


    $('#employeeGoalsGrid').kendoGrid({ 
     dataSource: goalsDataSource, 
     navigatable: true, 
     sortable: true, 
     resizable: true, 
     toolbar: ["save", "cancel"], 
     columns: [ 
      { field: "FirstName", title: "First Name", width: 200}, 
      { field: "LastName", title: "Last Name", width: 200 }, 
      { field: "Title", title: "Title", width: 200 }, 
      { field: "TeamName", title: "Team", width: 200 }, 
      { field: "PointsGoal", title: "Goal", width: 200 }], 
     editable: true, 
     filterable: true, 
    }); 

Wszelkie sugestie będą bardzo mile widziane.

+0

to problem polegający na tym, że nawigacja wybiera wszystkie kolumny w twojej sieci, chociaż "edytowalne" działa dobrze? – OnaBai

+0

Tak. Kiedy klikam kartę, fokus przechodzi do następnej kolumny, ale chcę pominąć nieedytowalne kolumny i przejść do następnej edytowalnej kolumny. – Rodney

+0

Czy możesz wysłać próbkę do [JSFiddle] (http://jsfiddle.com) lub [JSBin] (http://jsbin.com)? Chciałbym pomóc, ale byłoby wspaniale móc zacząć od interaktywnej próbki. –

Odpowiedz

0

Czy możesz spróbować zmienić właściwość editable w opcjach siatki od true na "inline" i daj mi znać, jeśli to rozwiąże problem? Stworzyłem podobny scenariusz w this JSBin, a kolejność kart działa dobrze (Chrome na OSX) podczas edycji wiersza.

+1

Robię edycję partii. Naprawdę tylko jedna kolumna, którą można edytować. Muszę po prostu zeskoczyć z rzędu, gdy uderzy się w kartę. Zmieniając to na wbudowane. Użytkownik musi teraz kliknąć przycisk Zapisz w każdym wierszu. – Rodney

2

Aby pominąć komórkę trzeba użyć tabindex="99999"

stworzyłem jsfiddle dla celów testowych: http://jsfiddle.net/danieltulp/kfG7y/

myślę, że trzeba spojrzeć na użyciu atrybutów: {tabindex: "999999"} w

{ field: "UnitsInStock", title: "Units In Stock", width: 110, attributes: { tabindex: "999999" } } 

ale to nie działa. Ktoś lepszy pomysł?

Może to po prostu niemożliwe?

+1

+1 Dziękujemy za umieszczenie twojego jsFiddle na twojej odpowiedzi. -1 za nie udzielenie mi odpowiedzi. +1, ponieważ cieszę się, że nie jestem jedynym, który ma ten problem. To jest dla mnie wciąż nierozwiązane. Chciałbym, aby Kendo rozwiązało ten problem. (Przepraszam, mogę dać ci tylko +1) – Rodney

+0

To nie jest mój kod. Tylko wersja demonstracyjna ze strony kendo. Stworzyłem go, aby spróbować rozwiązać go dla Ciebie, ale się nie udało. Dzięki za +1 –

Powiązane problemy