Deaktivieren/Aktivieren Sie die checkbox in der kendo-raster auf Grundlage der Spalte Wert
Ich habe eine kendogrid alle arbeiten gut, jetzt habe ich neue Anforderung, d.h. die Letzte Spalte habe ich die checkbox-und nur zu diesem früheren Kolumne habe ich eine status-Spalte,
wenn das text-Wert ist "ZERTIFIZIERT" ist nur dann, dass eine bestimmte Zeile checkbox sollte aktiviert werden, wenn der text nicht "ZERTIFIZIERT" sollte es deaktivieren Sie die checkbox der Zeile,und Sie sollten nicht zulassen, um zu überprüfen, dass die checkbox mit Hilfe von jquery habe ich anhängendes von kendogrid habe ich, die helfen könnte, für Anregungen
CODE
DAS SIND MEINE SPALTEN MEINER KENDO-GRID
, columns: [
{ field: "ResultFormatID", Title: "ResultFormatID", filterable: false, sortable: false, hidden: true },
{ field: "ID", Title: "ID", filterable: false, sortable: false, hidden: true },
{ field: "RowID", Title: "RowID", filterable: false, sortable: false, hidden: true },
{ field: "BillNumber", Title: "Bill Number", filterable: false, sortable: false, hidden: true },
{ field: "ServiceName", Title: "Service Name", width: 600 },
{ field: "Status", Title: "Service Status", width: 150 }
, {
template: $("#template").html(),
headerTemplate: '<label> <input type="checkbox" id="checkAll"/>Download</label>', filterable: false, sortable: false, width: 100,
}
]
DAS IST MEINE EINZELNE ZEILE CHECKBOX
<script id="template" type="text/kendo-template">
#if(ResultFormatID != 3) { #
<input type="checkbox" #= data.Action ? checked="checked" : "" # class=\"check_row\"/>
# } else { #
<input type="button" class="k-button info" name="info" value="Preview" />
# } #
AKTUALISIERT
DIES IST MEIN CHECKALL-FUNKTION(und was ich getan habe, um Sie zu deaktivieren)
$("#checkAll").on('click', function (e) {
debugger;
var $cb = $(this);
var checked = $cb.is(':checked');
var grid = $('.Grid_table').data('kendoGrid');
grid.table.find("tr").find("td:last input").attr("checked", checked);
var items = $(".Grid_table").data("kendoGrid").dataSource.data();
for (i = 0; i < items.length; i++) {
var item = items[i];
var status = item.ServiceStatus;
if (status == "Result Certified ") {
grid.table.find("tr").find("td:last input").attr("checked", checked);
}
else {
grid.table.find("tr").find("td:last input").prop("checked",false);
}
if (!checked) {
//debugger;
$(".Grid_table").data("kendoGrid").clearSelection();
}
});
});
UPDATE 2
nun als pro Ihr code funktioniert alles einwandfrei und ich bin in der Lage zu deaktivieren, die nicht zertifiziert Zeile, ich stehe vor einem problem mit dem code unten, wenn wenigstens einzelne checkbox ist nicht aktiviert, es deaktiviert die Schaltfläche, die verwendet wird zum herunterladen der PDF-Datei, wenn ich nun wählen Sie alle Kontrollkästchen, und klicken den button "download", es ist nun deaktiviert!! aber wenn ich deaktivieren Sie eine Zeile wie 10 Zeilen, dann laden Sie aktiviert und verwendet, um die Datei herunterzuladen.
wenn ich deaktivieren Sie die letzten 3 Zeilen von unten der code, es hilft, aktivieren Sie die Schaltfläche zu klicken, aber ich brauche, um die Auswahl aufzuheben atleast einzelne Kontrollkästchen, um zu arbeiten, wenn nicht wird es deaktiviert, was mache ich falsch ??
$(function () {
//debugger;
var checkboxes = $(':checkbox:not(#checkAll)').click(function (event) {
$('#btn_Print').prop("disabled", checkboxes.filter(':checked').length == 0);
});
$('#checkAll').click(function (event) {
checkboxes.prop('checked', this.checked);
$('#btn_Print').prop("disabled", !this.checked)
});
});
WENN
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint, dass das, was Sie brauchen, ist die Kontrolle, ob die
input
Bereich dertype="checkbox"
istdisabled
. So sollten Sie definiert die Vorlage wie folgt:I. e: hinzufügen der Bedingung der
data.Status == 'Certified' ? disabled='disabled' : ""
Ihn in Aktion zu sehen hier: http://jsfiddle.net/Hfk3Q/
BEARBEITEN: gewünschte Änderungen, die beim Klick auf ein Header check-box wäre eine änderung seiner Umsetzung für die Prüfung nur jene Zellen, die sind nicht deaktiviert. So etwas wie:
Ihn in Aktion zu sehen hier: http://jsfiddle.net/Hfk3Q/3/
selectAll
code zu tun, nicht wählen Sie diejenigen, die deaktiviert sind, das ist ziemlich einfach zu Steuern in jQuery.data.Status == 'Certified' ? disabled='disabled' : ""
zudata.Status == 'Certified' ? "" : disabled='disabled'
Check jsfiddle.net/Hfk3Q/7checkboxes
alle Kontrollkästchen, die sind nicht die, die in der Kopfzeile (übrigens, das ist nicht der effizienteste Weg computing) und dann, wenncheckAll
geklickt wird, verwenden Sie diese Liste (alle Checkboxen in den Körper der Tabelle) für die Aktivierung. Damit Sie am Ende-up ermöglicht alles. Prüfen Sie hier : jsfiddle.net/Hfk3Q/9