最近在用dojo做项目, 把使用过程中遇到的一些问题记录下来, 方便以后查阅, 因为问题不断, 所以持续更新中..........
DijitRegistry
will allow dijit layout widgets to recognize dgrid instances as child widgets, and as a result the layout widgets will take care to call startup
and resize
appropriately on the list/gridvar grid = new (declare([OnDemandGrid, DijitRegistry]))({ store: myStore, columns: myColumns }, "grid");
dojox/form/Manager注意:
基表单子元素必需要有name属性:
<input type="text" name="date1" value="2005-12-30" data-dojo-type="dijit/form/DateTextBox" required="true" style="width:8em"/></td>
在包含Manager的父容器定义时,如果覆盖重写方法时,必需先执行
this.inherited(arguments);
在处理表单时如果用dojox/form/Manager时, 在对表单设置值时调用setFormValues时, 我发现 dijit/form/RadioButton 元素的值设置不成功, 这是因为dojo代码有点问题: dojox/form/manager/_Mixin.js中310中代码如下:
widget.set("checked", widget.value === value, !this.watching);
竟然用的 === , 有必要这样吗????? 所以我们在html中用
<input id="${id}-comeFrom-1" type="radio" data-dojo-type="dijit/form/RadioButton" value="2" name="comeFrom"/> <label for="${id}-comeFrom-1">customer</label>
因为模板中的value提取后是字符类型的值, 和我服务端返回的整数不能相等, 所以不相等. 改成value=2这种形式也没有.要改成如下:
<input id="${id}-comeFrom-1" type="radio" data-dojo-type="dijit/form/RadioButton" data-dojo-props="checked:true,value:2" name="comeFrom"/> <label for="${id}-comeFrom-1">customer</label> <br/>
在data-dojo-props中定义value, 必需是int类型的.