如何防止自动调整包含dijit表单的dijit.dialog?

时间:2011-11-16 11:36:44

标签: dojo dialog

我的dijit.dialog包含模板form。当对话框可见并且我调整窗口大小时,表单高度会降低(即使我增大/减小窗口大小)。是什么导致了这种奇怪的行为以及如何预防? 感谢。

代码: @ LoginForm.html -

<form  data-dojo-attach-point="containerNode"
    data-dojo-attach-event="onreset:_onReset, onsubmit:_onSubmit">
    ..
    ..
</form>

@ LoginForm.js -

dojo.declare("LoginForm", [dijit.form.Form], {

  widgetsInTemplate: true,
  templateString: dojo.cache('template/LoginForm.html'),

  name: 'Login',
  'class': 'loginForm',
  'context': {'message':'hello'},

  action: '/authenticate',
  method: 'POST',
  onSubmit: function(event) {
  // something here
  },
  postCreate: function(){
  //
  },
  startup: function(){
   this.inherited(arguments);
  }
});

@ index.html(这在浏览器上显示,调用LoginForm.js,创建窗口小部件的实例,将其放在dojo.body()并显示它) -

1 个答案:

答案 0 :(得分:1)

我做了几个小时的研究,发现了一条痕迹。

调整窗口大小时,它会尝试调用Form.resize(),希望表单会在其子项上调用resize。但由于Form不是布局小部件,所以没有任何反应。我覆盖了表格的resize()(什么都不做!)这个小虫似乎消失了。

我仍然不确定我是否有完整的解决方案(毕竟覆盖不是一种修复方法)。如果有人有更好的解释/解决方案,请赐教。 谢谢。