ExtJS:根据Button对象找到它所在的Form

通常是不会有这样需求的,偶只是因为想写个共通的reset按钮,所以才有了这样的想法。因为通过Extjs中布局会包裹的里三层、外三层的,不能简单的使用button.ownerCt来取得它的FormPanel对象,这需要使用递归的方式一直向上找,通常是可以找到的。

My.ResetButton = Ext.extend(Ext.Button, {
text: ‘重置’,
iconCls: ‘icon-reset’,
handler: function(btn, e) {
var findParentFrm = findParentForm(btn);
if (findParentFrm != undefined)
findParentFrm.reset();
}
})

function findParentForm(btn) {
if (btn.ownerCt != undefined) {
if (btn.ownerCt.getForm != undefined) {
return btn.ownerCt.getForm();
} else {
return findParentForm(btn.ownerCt);
}
} else {
return undefined;
}
}

唉,没有代码格式的插件,粘贴上的代码可真乱。