2015-03-23 11 views
5

an die Steuerung übergeben Ich habe eine Spalte Vorlage:Checkbox Spalte, ausgewählte Werte erhalten und

columns.Template(@<text></text>).ClientTemplate("<input type='checkbox' class='checkbox'/>").Title("<input type='checkbox'/>").Width(10).Title("Izbor").HtmlAttributes(new { @onclick = "click", style = "align:center;float:none;text-align:center; font-size:12px; vertical-align: middle;" }).HeaderHtmlAttributes(new { style = "overflow: visible; white-space: normal; text-align:center; font-size:12px; font-weight: bold;" }); 

ich wählen Zeilen mit diesem Code:

function onDataBound(e) { 
    $(".checkbox").bind("change", function(e) { 
     $(e.target).closest("tr").toggleClass("k-state-selected"); 
    }) 
} 

Wie kann ich eine bestimmte Spalte auswählen (zB. Ids) aus dem Netz und übergeben sie an den Controller?

Antwort

9

können Sie die Unterstützung Zugriff auf Daten auf dem Gitter in Ihrem Event-Handler

dataBound: function(e) { 
     $(".checkbox").bind("change", function(e) { 
     var grid = $("#grid").data("kendoGrid"); 
     var row = $(e.target).closest("tr"); 
     row.toggleClass("k-state-selected"); 
     var data = grid.dataItem(row); 
     alert(data.ProductID); 
     }); 
    } 

Um eine Liste der ausgewählten IDs erhalten Sie entweder können sie während des Click-Ereignis verfolgen oder einfach nur sie alle sammeln, wenn ein Ereignis ausgelöst wird, , z.B.

$("#actionButton").click(function(){ 
     var idsToSend = []; 
     var grid = $("#grid").data("kendoGrid") 
     var ds = grid.dataSource.view(); 

     for (var i = 0; i < ds.length; i++) { 
     var row = grid.table.find("tr[data-uid='" + ds[i].uid + "']"); 
     var checkbox = $(row).find(".checkbox"); 
     if (checkbox.is(":checked")) { 
      idsToSend.push(ds[i].ProductID); 
     } 
     } 

     alert(idsToSend); 

     //this obviously won't work , but just to illustrate the point.   
     $.post("/whatever", {ids: idsToSend}); 
    }); 

edit: demo

+0

Dank! Es klappt! Wie kann ich alle ausgewählten Kontrollkästchen in einem Array platzieren und alle ausgewählten IDs an den Controller übergeben? – lazerbrain

+0

Die Demo und das Beispiel wurden mit einem möglichen Ansatz aktualisiert. – Joe

+0

Danke! Genau das suche ich! :) – lazerbrain

Verwandte Themen