我正在使用增强网格单元格的内联编辑,并且有一个NumberSpinner元素。编辑内联时,此numberpinner的约束不起作用。所需的财产工作正常。 我的代码:
{field: 'msorder', width: '10%', name: 'Milestone Order',editable: true, type: dojox.grid.cells._Widget, widgetClass: dijit.form.NumberSpinner, widgetProps: {required:true,smallDelta:1, editorParams:{constraints:{ min:-1000, max:1000, places:0 }} }}
我也尝试过:
{field: 'msorder', width: '10%', name: 'Milestone Order',editable: true, type: dojox.grid.cells._Widget, widgetClass: dijit.form.NumberSpinner, widgetProps: {required:true,smallDelta:1, constraints:{ min:-1000, max:1000, places:0 } }}
答案 0 :(得分:3)
有一个更简单的解决方案,伙计们:
<强>约束:{分钟:0,最大值:24} 强>
{field: "hours", name: "Stunden",type: dojox.grid.cells._Widget, widgetClass: dijit.form.NumberSpinner, constraint:{min:0,max:24}, widgetProps: {smallDelta:0.25, intermediateChanges:true,}},
它必须在widgetProps之外并且以单数形式...
答案 1 :(得分:2)
我不知道您使用的Dojo
版本是什么,但1.6中存在已知的错误,即网格小部件中的约束被忽略。但是,我解决了一个覆盖标准NumberSpinner
的问题。
dojo.require("dijit.form.NumberSpinner");
dojo.addOnLoad(function() {
dojo.declare("mySpinner", [ dijit.form.NumberSpinner], {
validator: function(v, c){
var MIN= -1000;
var MAX = 1000;
c.min= MIN;
c.max = MAX ;
return ((v < MAX ) && (v > MIN));
},
});
var dateBox = new mySpinner({}).placeAt('foo');
dateBox.set("value", 1000);
});
(现在,在您的网格结构中,您当然应该使用mySpinner
,它应该可以做到这一点。)
答案 2 :(得分:0)
我用另一种方法来解决这个问题。我将单元格的类型定义为 Widget ,然后在get方法上创建小部件。
{
field: 'msorder',
width: '10%',
name: 'Milestone Order',
editable: true,
type: dojox.grid.cells._Widget,
get: function(rowIndex, item) {
var store = this.grid.store,
value = store.getValue(item, 'value');
this.widget = new dijit.form.NumberSpinner({ value:0,
constraints:{ min:-1000, max:1000 }
});
return value;
}
}
通过这种实现,我能够为网格上的每个单元格设置不同的约束。