复选框/dojox.grid.cells.Bool 的事件处理程序,位于 EnhancedGrid 中的 ItemFil
Event handler for checkbox / dojox.grid.cells.Bool in a ItemFileWriteStore in EnhancedGrid?
我有一个由ItemFileWriteStore填充的增强网格。存储中的数据项之一是:
check: true
然后在增强的网格中,我有:
{
field: "check",
name: "Value Check",
editable: true,
type: dojox.grid.cells.Bool
}
这给了我一个充满复选框的列。我一直无法找到如何处理检查这些复选框。我想从选中的每个复选框开始,如果您取消选中一个复选框,它会删除相应的数据。是否有一些事件处理程序可以附加dojo/on
?还是我不知道的增强网格上的某种方法?我无法找到任何有关此的文档,我觉得我错过了一些东西。
你会做这样的事情:
require(['dijit/registry','dojo/on','dijit/WidgetSet','dojo/on'],function(reg,on){
reg.byClass("dojox.grid.cells.Bool").forEach(function(node){
on(node.domNode,'click',function(){alert('hello');});
});
});
我发现最好的解决方案是将处理程序附加到"RowClick"事件,因为每次单击复选框时,都会触发 RowClick 事件。然后遍历数据存储并根据复选框更新所有内容。它绝对没有效率,但可以满足我的需要。它是这样的:
grid.on("RowClick", function (event) {
for (var i=0; i<store._arrayOfAllItems.length; i++) {
if (grid.getItem(i)) {
if (grid.getItem(i).check[0]) {
// row is checked, do something
} else {
// row is not checked, do something else
}
}
}
}
据我所知,event
不会传递可用于识别网格中单击了哪一行的信息(我不是 100% 确定,其中有很多)。所以这是我想出的最好的方法。
{
name: 'Paid',
field: 'paid',
width: '40px',
type: dojox.grid.cells.Bool,
editable:true,
doclick:function(e){
if(e.target.tagName == 'INPUT'){
if(confirm("Sure?")){
this.applyStaticValue(e.rowIndex);
} else {
e.target.checked = !e.target.checked;
}
}
}
}
这是一个老问题,我在这里用谷歌搜索。希望我的回答可以帮助某人。
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- keyup事件处理程序更改焦点不适用于快速键入
- 用程序搜索JQuery数据表中的文本
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- ExtJS 5用程序点击actioncolumn gridview
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 如何从Java/scala调用js美化程序
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 如果字符串位于iframe之后,则不会使用引导程序列表显示
- 基于钛的NFC应用程序仅在NFC代码位于索引.js中时才有效
- 复选框/dojox.grid.cells.Bool 的事件处理程序,位于 EnhancedGrid 中的 ItemFil
- 检查xpages应用程序是否位于IBM Connections中的iframe中
- 按下按钮,启动本地电子邮件程序与附件(位于web服务器上)
- Web 应用程序 - 节点.js包括位于 Web 服务器上的本地 JavaScript 文件
- Office 2013应用程序:如果outlook项目位于共享日历中,则无法在该项目中加载自定义属性