【问题标题】:ExtJS Form loadExtJS 表单加载
【发布时间】:2011-05-19 05:32:29
【问题描述】:

表单加载后会触发哪个事件?我的要求是在基于某些条件的视图加载时某些控件设置为禁用模式(只读) 那么如何处理这个(哪个事件) 我试过这个formpanel.on({ actioncomplete: function (form, action) {} 但没有被解雇

提前致谢

【问题讨论】:

    标签: extjs


    【解决方案1】:

    我今天只是为此而苦苦挣扎。要记住的重要一点是form.loadRecord() 上没有没有事件 触发,因为它只是一个setValues() 包装器。如果您希望在loadRecord() 上触发事件,则需要通过扩展Ext.form.Basic 自己定义它(并可能将事件添加到Ext.form.Panel 中的relayEvents)。

    【讨论】:

      【解决方案2】:

      我假设您在记录/数据加载到表单后发生了一个事件。该操作在basicForm 中处理并调用。在basicForm 中,load() 调用doAction(),因此您应该能够使用来自basicForm 的以下事件

      actioncomplete :( 形成这个,动作 action ) 执行动作时触发 完成。

      actionfailed :( 形成这个,动作 action ) 动作失败时触发。

      beforeaction :( 形成这个,动作 action ) 在任何动作执行之前触发 执行。返回 false 取消 行动。

      【讨论】:

      • 感谢您的重播,我已经尝试过 beforeaction 但它没有被触发,我也尝试过这个 "Ext.getCmp("PeopleSearchFormPanel").getForm().on({ beforeaction: function (a , o) { debugger; Ext.getCmp('btaAdd').disable(); } });",但它没有被触发
      • @MNR 您的代码一定有问题...load() 内部调用doAction() 并触发beforeaction 事件...
      【解决方案3】:

      您可以使用 Ext.util.Observable.capture 观察 Observable 上的事件。下面是一个观察表单的例子,它被加载然后提交:

      http://jsfiddle.net/el_chief/HBah5/4/

      我看到了这些事件:

      字段有效性更改
      字段错误更改
      有效性更改
      脏变
      beforeaction(我点击提交)
      后布局
      actionfailed(它没有提交到任何地方)

      别忘了,BasicForm 有自己的事件(虽然我相信它们都被转发到 Form),就像表单中的字段一样。

      更改 basic.trackResetOnLoad 也会更改一些事件,尤其是“dirtychange”

      【讨论】:

        猜你喜欢
        • 2011-11-30
        • 1970-01-01
        • 2012-02-10
        • 1970-01-01
        • 1970-01-01
        • 2013-07-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多