【发布时间】:2017-06-22 17:24:53
【问题描述】:
我有一个使用 Dojo/DGrid 构建表格的网站。
网格的某些列使用editor: dijit/form/FilteringSelect 作为编辑器,效果很好。当用户点击返回键时,该值被接受并且编辑器关闭。
同一个网格的其他列有一个自定义的renderCell,因为每一行的存储url都不一样:
function myCustomRenderCell(object, item, node) {
node.innerHTML = '<div class="myClass"></div>';
var filteringSelect = new FilteringSelect({
label: 'myLabel',
name: 'myName',
displayedValue: item.myValue,
store: new DstoreAdapter (
new RestMemoryStore ({
idProperty: 'id',
target: 'myUrlToJsonData',
})
),
onChange: function(newValue) {
var rowData = filteringSelect.store.get(newValue);
var gridCell = this.domNode.offsetParent;
var dataCell = grid.cell(gridCell);
rowData.then(function(row){
var eventObject = {
grid: this,
cell: dataCell,
oldValue: "",
value: row.name,
bubbles: true,
cancelable: true
};
on.emit(dataCell.element, 'dgrid-datachange', eventObject);
grid.updateDirty(dataCell.row.id, 'myLabel', row.name);
});
}
}, node.children[0]);
filteringSelect._destroyOnRemove = true;
filteringSelect.startup();
}
与开头提到的默认 FilteringSelect 不同,当使用按返回键时,此选项不会留下。该值已正确处理。但是除了按 Tab 键将光标放在下一个自定义编辑器中或使用鼠标之外,没有办法离开这个编辑器。
任何想法如何设置此自定义构建 FilteringSelect 以在返回时关闭,就像网格中的默认编辑器一样?
【问题讨论】:
-
看看能不能把焦点移到自定义的
-
谢谢,现在可以了。
-
抱歉,回滚。我尝试了下面的代码。只要我在调试器中单击它就可以工作,但如果没有我单击它就不会。
标签: javascript dojo dgrid dijit.form