Select 用于网格中的多个复选框
Select for multiple checkbox in the grid
我在 dojo 中有这个示例数据。当网格加载时,有2个按钮View
和edit
。当我单击网格中的 view
复选框时,只能 select 一个节点(工作)。但是当我点击 edit
按钮时,我可以 select 用于多个复选框。似乎函数 onClick
仍然是 运行 以及如何停止它?
function onClick(e) {
var grid = $("#grid").data("kendoGrid");
var row = $(e.target).closest("tr");
if(row.hasClass("k-state-selected")){
setTimeout(function(e) {
var grid = $("#grid").data("kendoGrid");
grid.clearSelection();
})
} else {
grid.clearSelection();
};
};
$(document).ready(function() {
$("#grid").kendoGrid({
//.........grid load code
});
});
$("#view").kendoButton();
var button = $("#view").data("kendoButton");
button.bind("click", function(e) {
$('#grid').data('kendoGrid').dataSource.read();
var grid = $("#grid").data("kendoGrid");
grid.tbody.on("click", ".k-checkbox", onClick);
});
$("#edit").kendoButton();
var button = $("#edit").data("kendoButton");
button.bind("click", function(e) {
$('#grid').data('kendoGrid').dataSource.read();
});
<div id="grid"></div>
<button id="view" class="k-button k-primary" value="view">View</button>
<button id="edit" class="k-button k-primary" value="edit">Edit</button>
您的问题在于您没有 unbind
单击 view
时的 onClick
回调。当您将函数绑定到事件侦听器时,它将继续侦听,除非您通过 unbind
-ing 删除该侦听器。
试试这个:
$("#edit").kendoButton();
var button = $("#edit").data("kendoButton");
button.bind("click", function(e) {
// Unbind view event listener
var grid = $("#grid").data("kendoGrid");
grid.tbody.unbind("click", onClick);
$('#grid').data('kendoGrid').dataSource.read();
});
旁注,您应该分别重命名 button
变量,以降低 运行 成为错误的可能性。
我在 dojo 中有这个示例数据。当网格加载时,有2个按钮View
和edit
。当我单击网格中的 view
复选框时,只能 select 一个节点(工作)。但是当我点击 edit
按钮时,我可以 select 用于多个复选框。似乎函数 onClick
仍然是 运行 以及如何停止它?
function onClick(e) {
var grid = $("#grid").data("kendoGrid");
var row = $(e.target).closest("tr");
if(row.hasClass("k-state-selected")){
setTimeout(function(e) {
var grid = $("#grid").data("kendoGrid");
grid.clearSelection();
})
} else {
grid.clearSelection();
};
};
$(document).ready(function() {
$("#grid").kendoGrid({
//.........grid load code
});
});
$("#view").kendoButton();
var button = $("#view").data("kendoButton");
button.bind("click", function(e) {
$('#grid').data('kendoGrid').dataSource.read();
var grid = $("#grid").data("kendoGrid");
grid.tbody.on("click", ".k-checkbox", onClick);
});
$("#edit").kendoButton();
var button = $("#edit").data("kendoButton");
button.bind("click", function(e) {
$('#grid').data('kendoGrid').dataSource.read();
});
<div id="grid"></div>
<button id="view" class="k-button k-primary" value="view">View</button>
<button id="edit" class="k-button k-primary" value="edit">Edit</button>
您的问题在于您没有 unbind
单击 view
时的 onClick
回调。当您将函数绑定到事件侦听器时,它将继续侦听,除非您通过 unbind
-ing 删除该侦听器。
试试这个:
$("#edit").kendoButton();
var button = $("#edit").data("kendoButton");
button.bind("click", function(e) {
// Unbind view event listener
var grid = $("#grid").data("kendoGrid");
grid.tbody.unbind("click", onClick);
$('#grid').data('kendoGrid').dataSource.read();
});
旁注,您应该分别重命名 button
变量,以降低 运行 成为错误的可能性。