`
禹爸爸
  • 浏览: 83977 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

FomPanel加到TabPanel中按钮点击失效问题之解决方法

Ext 
阅读更多

昨天晚上在家里写代码时遇到一个奇怪的问题。事先写好了一个FormPanle,将其添加到Window中,并在Window中添加按钮,调试,一切正常,按钮点击可以工作。随,又写了一个Panel,继承于这个FormPanel,并将其加入到TabPanel中,同样的为其添加按钮,调试,显示一切正常,可是按钮却不能工作了!点击事件失效了!!代码如下:

  1. POWindow=Ext.extend(Ext.Window,{
  2. form:null,
  3. constructor:function(){
  4. this.form=newPOFormPanel();
  5. POWindow.superclass.constructor.call(this,{
  6. width:600,
  7. autoHeight:true,
  8. modal:true,//模式窗体
  9. onEsc:Ext.emptyFn,
  10. plain:true,
  11. resizable:false,
  12. //minimizable:true,
  13. //closable:false,
  14. closeAction:"hide",
  15. constrain:false,
  16. layout:"form",
  17. items:[this.form],
  18. buttonAlign:"center",
  19. buttons:[{
  20. text:"SaveAsDraft",
  21. handler:this.SaveButtonClick,
  22. scope:this
  23. },{
  24. text:"Submit",
  25. handler:this.SubmitButtonClick,
  26. scope:this
  27. },{
  28. text:"Cancel",
  29. handler:this.CancelButtonClick,
  30. scope:this
  31. }]
  32. });
  33. },
  34. SaveButtonClick:function(btn,e){
  35. alert(Ext.encode(this.form.getValues().data));
  36. },
  37. SubmitButtonClick:function(btn,e){
  38. alert(Ext.encode(this.form.getValues().data));
  39. },
  40. CancelButtonClick:function(btn,e){
  41. this.hide();
  42. this.form.reset();
  43. }
  44. });
  45. //==============================================================================
  46. /**/
  47. POTabFormPanel=Ext.extend(POFormPanel,{
  48. //frame:true,
  49. title:"PurchaseOrder",
  50. closable:true,
  51. autoScroll:true,
  52. buttonAlign:"center",
  53. buttons:[{
  54. text:"SaveAsDraft",
  55. handler:this.SaveButtonClick,
  56. scope:this
  57. },{
  58. text:"Submit",
  59. handler:this.SubmitButtonClick,
  60. scope:this
  61. },{
  62. text:"Cancel",
  63. handler:this.CancelButtonClick,
  64. scope:this
  65. }],
  66. constructor:function(_cfg){
  67. if(_cfg)
  68. Ext.apply(_cfg);
  69. POTabFormPanel.superclass.constructor.call(this);
  70. },
  71. SaveButtonClick:function(){
  72. alert("SaveButtonClick");
  73. //alert(Ext.encode(this.getValues().data));
  74. },
  75. SubmitButtonClick:function(btn,e){
  76. alert(Ext.encode(this.getValues().data));
  77. },
  78. CancelButtonClick:function(btn,e){
  79. this.reset();
  80. }
  81. });

一直不知道是哪里出了问题,上网Google了一下也没有找到答案,只有自己摸索解决了。

 

凝视了代码好久,脑子里突然想到之前听陈治文老师视频中讲到的“设计时代码”和“运行时代码”,那问题会不会是出现在这里呢?我试着将Buttons的代码移到其构造函数里,再次调试,按钮单击正常工作了!!!

  1. POTabFormPanel=Ext.extend(POFormPanel,{
  2. frame:true,
  3. //title:"PurchaseOrder",
  4. closable:true,
  5. autoScroll:true,
  6. constructor:function(_cfg){
  7. if(_cfg)
  8. Ext.apply(this,_cfg);
  9. POTabFormPanel.superclass.constructor.call(this,{
  10. buttonAlign:"center",
  11. buttons:[{
  12. text:"SaveAsDraft",
  13. handler:this.SaveButtonClick,
  14. scope:this
  15. },{
  16. text:"Submit",
  17. handler:this.SubmitButtonClick,
  18. scope:this
  19. },{
  20. text:"Cancel",
  21. handler:this.CancelButtonClick,
  22. scope:this
  23. }]
  24. });
  25. },
  26. SaveButtonClick:function(){
  27. alert("SaveButtonClick");
  28. //Ext.log("SaveButtonClick");
  29. alert(Ext.encode(this.getValues().data));
  30. },
  31. SubmitButtonClick:function(btn,e){
  32. alert(Ext.encode(this.getValues().data));
  33. Ext.log(Ext.encode(this.getValues().data))
  34. },
  35. CancelButtonClick:function(btn,e){
  36. this.reset();
  37. }
  38. });

问题得到了解决,记录在我的Blog中,方便其他遇到类似问题的朋友参阅!!

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    ExtJS TabPanel 标签操作

    在ExtJS中,TabPanel是一个容器,可以包含多个Panel(或称之为卡片),每个Panel对应一个标签页。创建一个基本的TabPanel需要指定` xtype: 'tabpanel' `,并可以通过`items`属性来添加初始的面板。例如: ```...

    treepanel 和 tabpanel 完整

    4. **动态添加标签页**:在`itemclick`事件处理函数中,利用`TabPanel`的`add`方法添加新标签页,或者通过`setActiveTab`方法切换到已有标签页。 5. **更新标签页内容**:如果需要动态加载内容,可以在此时创建或...

    如何在MATLAB中做出标签页的效果-tabpanel2.6.zip

    关于标签页的制作给出了三种方法,第一种就不介绍给大家了,因为时间久远到现在改方法已经失效,但是也放在附件中供大家参考就是那个tab。第二种是让我眼前一亮的。使用方法是这样:首先建立一个figure,并在其中...

    Ext中的tabpanel关闭后再打开不显示的问题

    通过以上两种方法——调整`autoDestroy`和`closeAction`属性——我们可以有效地解决Ext中`TabPanel`关闭后再打开不显示的问题。这些技巧不仅能够提升用户体验,还能够在复杂的业务场景下提供更加灵活的界面管理方案...

    TabPanel选卡结合右键菜单实例

    在IT行业中,用户界面设计是至关重要的一环,它直接影响到用户体验和软件的易用性。本实例探讨的是如何使用jQuery来实现一个功能丰富的TabPanel选卡结合右键菜单的交互功能,这对于创建高效的多页面视图应用是非常...

    Extjs4.2 设置tabpanel当前活动页签的样式

    其中, `.x-tab-active` 是Extjs中当前活动页签的CSS类名, `.x-tab-wrap` 是标签页签的容器, `.x-tab-button` 是标签页签的按钮, `.x-tab-inner` 是标签页签的内部容器。 在上面的代码中,我们使用了CSS选择器来...

    tabpanel中添加portal

    在前端开发中,`tabpanel` 和 `portal` 是两种重要的技术概念,它们分别涉及到用户界面的组织和组件渲染。本文将深入探讨`tabpanel`和`portal`,并结合提供的资源来解析它们的工作原理和实际应用。 `tabpanel`通常...

    ExtJS tabPanel实例

    在ExtJS中,`tabPanel` 是一个非常重要的组件,它允许你在一个容器内创建多个标签页,每个标签页可以承载不同的内容,提供了类似桌面应用的用户体验。在实际开发中,`tabPanel` 经常被用来组织和展示复杂的信息。 `...

    extjs4.2.1 tabPanel刷新及关闭标签

    这里首先获取到当前激活的标签页,然后调用`remove`方法将其从`TabPanel`中移除。需要注意的是,这种方法会直接销毁该标签页及其关联的数据模型,因此在使用前应确保没有其他引用指向该对象。 #### 关闭其他标签页 ...

    TabPanel 加载页面

    在IT行业中,`TabPanel`通常是指一种用户界面(UI)组件,常见于Web应用程序或桌面应用程序中。它允许在一个容器内展示多个面板,每个面板代表一个独立的页面或者视图,用户可以通过点击不同的标签在这些页面之间...

    TabPanel 选项卡

    在网页设计中,TabPanel 提供了一种整洁、高效的方式,让用户通过点击不同的标签来切换显示不同的信息板块,提高用户体验。这种布局模式在数据展示、设置页面和多模块内容呈现中尤其常见。 【描述】提到的是使用 ...

    ExtJS扩展:垂直页签tabPanel

    1. **扩展TabPanel类**:创建一个新的类,继承自Ext.TabPanel,并在扩展类中添加或覆盖必要的方法和配置,如`layout`配置项可能需要设置为自定义的垂直布局。 2. **自定义布局**:创建一个新的布局管理器,可能命名...

    ext的tabpanel的激活与注意事项

    调用这个方法后,tabpanel会切换到指定的选项卡,并将其设为活动状态。 然而,在实际开发中,我们需要注意以下几点: 1. **生命周期管理**:确保在尝试激活选项卡之前,tabpanel及其所有子选项卡都已经创建并加载...

    Ext中TabPanel的动态页面加载

    在EXT JS这个强大的JavaScript库中,`TabPanel`是一个核心组件,用于实现多标签页界面。本篇文章将深入探讨如何在EXT JS的`TabPanel`中实现动态页面加载,这在构建可扩展且高效的Web应用时非常关键。通过动态加载,...

    Extjs4.2 根据不同的数值设置tabpanel行的背景颜色

    最后一步是将GridPanel集成到TabPanel中,使其成为TabPanel的一个选项卡。例如: ```javascript // main.js 续 Ext.onReady(function() { // 创建TabPanel var tabPanel = Ext.create('Ext.tab.Panel', { width:...

    jQuery模仿ExtJS之TabPanel最新

    必须唯一,或者不设置该参数,否则将无法添加到选项卡组件中,默认自动生成。 title<string> 元素标题 可以动态设置。 closeable<boolean> 是否可关闭 true可关闭,false不可关闭,默认为true。

    基于jquery的tabpanel

    基于jquery的tabpanel,支持动态添加,支持滚动条,可内嵌iframe,支持关闭按钮,支持tab的背景图片配置, 这个是我在网上找到一个原始的版本,然后修改的,有详细注释,写了11个使用例子,基本涵盖了该组件的功能。...

    tapestry4.02中封装ext的TabPanel组件

    在Web UI设计中,TabPanel 是一种常见的布局元素,它将不同的内容区域分割成不同的标签页,用户可以通过点击不同的标签来切换显示的内容。Ext 的 TabPanel 提供了美观的样式和易于操作的API,使得在Web应用中实现...

    TabPanel效果,比较有用,收藏先。

    在IT行业中,TabPanel是一种常见的用户界面元素,广泛应用于各种应用程序和网页设计中。它用于组织和展示多个视图或面板,每个面板通常包含不同的内容,用户可以通过点击不同的标签在这些面板之间切换。这个...

    javascritp+css+tabpanel的实现

    在网页设计中,Tab Panel是一种常见的用户界面元素,它允许用户通过点击不同的标签来切换显示不同的内容区域。在这个“javascript+css+tabpanel的实现”中,我们将深入探讨如何使用HTML、JavaScript和CSS来创建一个...

Global site tag (gtag.js) - Google Analytics