2012-11-21 8 views
12

Ich benutze ein KendoGrid und mache eine Inline-Batch-Bearbeitung. Nur einige ausgewählte Spalten können bearbeitet werden. Wenn die Tabulatortaste gedrückt wird, wird die nächste Spalte ausgewählt, aber es ist nicht die nächste bearbeitbare Spalte. Gibt es eine Möglichkeit, die Tab-Reihenfolge in einem KendoGrid zu kontrollieren? Wie würde ich die Registerkarten überspringen lassen, die nicht editierbar sind?Wie man KendoGrid Tab Order neu anordnet?

My Mark-UP:

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

Mein 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, 
    }); 

Alle Vorschläge würden sehr geschätzt.

+0

ist das Problem, dass die Navigation alle Spalten auf dem Raster auswählt, obwohl 'editable' funktioniert gut? – OnaBai

+0

Ja. Wenn ich die Tabulatortaste drücke, bewegt sich der Fokus zur nächsten Spalte, aber ich möchte die nicht bearbeitbaren Spalten überspringen und zur nächsten bearbeitbaren Spalte springen. – Rodney

+0

Können Sie ein Beispiel auf [JSFiddle] (http://jsfiddle.com) oder [JSBin] (http://jsbin.com) veröffentlichen? Ich würde gerne helfen, aber es wäre großartig, wenn ich von einem interaktiven Sample starten könnte. –

Antwort

0

Können Sie versuchen, die editable Eigenschaft in den Rasteroptionen von true zu "inline" zu ändern und lassen Sie mich wissen, wenn das das Problem behebt? Ich habe ein ähnliches Szenario in this JSBin erstellt und die Tab-Reihenfolge funktioniert gut (Chrome unter OSX), wenn ich eine Zeile bearbeite.

+1

Ich mache eine Stapelbearbeitung. Ich habe wirklich nur eine einzige Spalte, die editierbar ist. Ich muss nur eine Zeile nach unten springen, wenn der Tab gedrückt wird. Indem Sie dies in Inline ändern. Der Benutzer muss nun in jeder Zeile auf Speichern klicken. – Rodney

2

überspringen Zelle Sie tabindex="99999"

ich eine jsfiddle zu Testzwecken erstellt verwenden müssen: http://jsfiddle.net/danieltulp/kfG7y/

Ich glaube, Sie bei Verwendung von Attributen suchen müssen: {tabindex: "999999"} in

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

aber das scheint nicht zu funktionieren. Jeder eine bessere Idee?

Vielleicht ist das einfach nicht möglich?

+1

+1 Vielen Dank für Ihre Antwort auf Ihre jsFiddle. -1 weil ich keine Antwort bekommen habe. +1, weil ich froh bin, dass ich nicht der Einzige mit diesem Problem bin. Das ist für mich immer noch ungelöst. Ich würde Kendo lieben, dieses Problem zu beheben. (Sorry, ich kann dir nur +1 geben) – Rodney

+0

Das ist nicht mein Code. Nur die Demo von der Kendo Website. Erstellt es, um zu versuchen, es für Sie zu lösen, aber faud. Danke für die +1 –