[UPDATE]
在我执行以下操作之后:http://dojo.telerik.com/aqIXa当我单击例如ProductName过滤器,然后选择并取消选择所有项目时,转到其他字段示例单价,单击选择并取消选择所有我转回到产品名称字段,现在在过滤器中:
您可以看到再次创建了Select All组合框,并且在重复这些步骤后它将继续创建 . 有没有人有这个想法为什么会发生?
我目前正在Kendo工作并尝试为每列制作自定义网格过滤器 . 我用这个例子:
在我添加的initCheckboxFilter函数中,为select all创建了复选框 .
var selectAllCheckbox= $("<div><input type='checkbox' id='checkAll' checked/> Select All</div>").insertBefore(".k-filter-help-text");
在我实现的那个函数之外:
function clickMe(){
$("#checkAll").click(function () {
if ($("#checkAll").is(':checked')) {
$(".book").prop("checked", true);
} else {
$(".book").prop("checked", false);
}
});
}
(.book是里面模板的类:
var element = $("<div class='checkbox-container'></div>").insertAfter(helpTextElement).kendoListView({
dataSource: checkboxesDataSource,
template: "<div><input type='checkbox' class='colDefFilter' value='#:" + field + "#' checked />#:" + field + "#</div>",
});
)
我还添加了UnitPrice和UnitInStock字段:
function onFilterMenuInit(e) {
debugger;
if (e.field == "ProductName" || "UnitPrice" || "UnitInStock") {
initCheckboxFilter.call(this, e);
}
}
这看起来像:
我第一次单击某些列过滤器上的全选复选框,它会检查并取消选中所有项目,它可以正常工作 . 当我尝试在其他列上执行此操作时,事件不会触发 . 有谁知道出了什么问题?谢谢!
1 回答
你的问题是你使用id for check all复选框,这就是为什么jquery总是从第一个下拉列表中选择复选框(产品)
你需要使用checkAll作为类而不是id然后更改你的clickMe()函数,它将工作:
这是工作示例http://dojo.telerik.com/aqIXa
Edit :
你使用添加方式选择全部复选框应该是这样的
这是一个问题
否则它将为先前初始化的过滤器下拉列表添加多个全选复选框 .
这是更新的演示:http://dojo.telerik.com/aqIXa/4