我想在单击单元格时打开一个对话框。我正在使用 dgrid/editor。
editor({field: "column1",label: "col1",editor: "text",editOn: "click"})
使用上述代码时出现文本框。我想要一个对话框。请告诉我如何获取对话框。我正在使用带有 JSONReststore 的 OndemandGrid 来显示网格。
您不需要使用编辑器来触发对话框,在单元格上使用点击事件就可以了:
var grid = new declare([OnDemandGrid,Keyboard, Selection])({
store: Observable(new Memory({data: []}))
}, yourGridConatiner);
grid.on(".dgrid-content .dgrid-cell:click", function (evt) {
var cell = grid.cell(evt);
var data = cell.row.data;
/* your dialog creation at here, for example like below */
var dlg = new Dialog({
title: "Dialog",
className:"dialogclass",
content: dlgDiv //you need create this div using dojo.create or put-selector
});
dlg.show();
});
如果您想在鼠标悬停在该单元格上时显示指针,您可以在 renderCell 方法中使用“cursor:pointer”设置它的样式
从维基:
editor
- 此列中编辑器使用的组件类型;指定要创建的标准 HTML 输入类型的字符串,或要实例化的 Dijit 小部件构造函数。
您可以提供(to editor
)一个按钮,单击时会弹出一个对话框,但这可能意味着单击两次来编辑单元格:一次聚焦或进入编辑模式,或者以其他方式使按钮出现,一次实际单击按钮。
您也可以不打扰编辑器插件并将click
事件处理程序附加到单元格并从那里弹出一个对话框。如果您走这条路,则必须手动将更改保存回您的商店。
如果我理解正确 - 你可以尝试这样的事情:
function cellFormatter1(value) {
//output html-code to open your popup - ie. using value (of cell)
}
......
{field: "column1",label: "col1", formatter: cellFormatter1 }