【发布时间】:2015-09-23 14:43:50
【问题描述】:
我已经构建了一个 Dojo OnDemandGrid,它有几个带有编辑器(NumberTextBox 和 FilteringSelect)的列,因此我可以修改网格中的值。我还在这些列上添加了一些验证,以帮助确保输入的值是正确的。这一切似乎都工作正常,当我输入一个无效值时,我得到一个指示值不正确的指示。
我的问题是当我尝试将此数据发送回服务器时。当我使用 ui.searchResultGrid.collection.data 获取网格数据时,任何无效的字段都没有在集合中更新,并且仍然具有它们的原始值。我的猜测是,当单元格更新并进行保存时,它会进行验证,如果验证失败,它不会更新集合。如何判断某些单元格验证失败并存在问题?
如果有帮助的话,我是这样定义我的网格的:
require(["dojo/_base/declare", "dgrid/OnDemandGrid", "dgrid/Keyboard", "dgrid/Selection", "dgrid/Editor",
"dgrid/extensions/ColumnResizer", "dgrid/extensions/DijitRegistry", "dijit/form/NumberTextBox",
"dijit/form/FilteringSelect", "dojo/_base/lang", "dojo/domReady!"],
function (declare, OnDemandGrid, Keyboard, Selection, Editor, ColumnResizer, DijitRegistry, NumberTextBox, FilteringSelect, lang) {
var CustomGrid = declare([OnDemandGrid, Keyboard, Selection, Editor, ColumnResizer, DijitRegistry]);
ui.searchResultGrid = new CustomGrid({
columns: {
newItemAmount: {
label: "# of New Item",
editor: NumberTextBox,
editorArgs: {
constraints: {
min: 0.0001,
max: 999.9999,
allowNegative: false,
places: 4
},
style: "width:90px;",
required: true
},
autoSave: true,
resizable: false,
sortable: false,
width: 100
},
newItemUnitId: {
label: "Unit of New Item",
editor: FilteringSelect,
editorArgs: {
style: "width:130px",
searchAttr: "name",
labelAttr: "name",
required: true
},
autoSave: true,
resizable: false,
sortable: false,
width: 140
}
},
selectionMode: "none",
cellNavigation: false,
}, "searchResultGrid");
});
【问题讨论】:
标签: javascript validation dojo dgrid