【发布时间】:2011-05-19 05:32:29
【问题描述】:
表单加载后会触发哪个事件?我的要求是在基于某些条件的视图加载时某些控件设置为禁用模式(只读)
那么如何处理这个(哪个事件)
我试过这个formpanel.on({ actioncomplete: function (form, action) {} 但没有被解雇
提前致谢
【问题讨论】:
标签: extjs
表单加载后会触发哪个事件?我的要求是在基于某些条件的视图加载时某些控件设置为禁用模式(只读)
那么如何处理这个(哪个事件)
我试过这个formpanel.on({ actioncomplete: function (form, action) {} 但没有被解雇
提前致谢
【问题讨论】:
标签: extjs
我今天只是为此而苦苦挣扎。要记住的重要一点是form.loadRecord() 上没有没有事件 触发,因为它只是一个setValues() 包装器。如果您希望在loadRecord() 上触发事件,则需要通过扩展Ext.form.Basic 自己定义它(并可能将事件添加到Ext.form.Panel 中的relayEvents)。
【讨论】:
我假设您在记录/数据加载到表单后发生了一个事件。该操作在basicForm 中处理并调用。在basicForm 中,load() 调用doAction(),因此您应该能够使用来自basicForm 的以下事件
actioncomplete :( 形成这个,动作 action ) 执行动作时触发 完成。
actionfailed :( 形成这个,动作 action ) 动作失败时触发。
beforeaction :( 形成这个,动作 action ) 在任何动作执行之前触发 执行。返回 false 取消 行动。
【讨论】:
load() 内部调用doAction() 并触发beforeaction 事件...
您可以使用 Ext.util.Observable.capture 观察 Observable 上的事件。下面是一个观察表单的例子,它被加载然后提交:
http://jsfiddle.net/el_chief/HBah5/4/
我看到了这些事件:
字段有效性更改
字段错误更改
有效性更改
脏变
beforeaction(我点击提交)
后布局
actionfailed(它没有提交到任何地方)
别忘了,BasicForm 有自己的事件(虽然我相信它们都被转发到 Form),就像表单中的字段一样。
更改 basic.trackResetOnLoad 也会更改一些事件,尤其是“dirtychange”
【讨论】: