Extjs小结

这些天在弄EXTJS这个东东,搞了好些天,似懂非懂,总的来说还是有些启发,现在把遇到的问题回忆回忆,总结出来.

第一个是问题,至今还没搞定,估计是目前extjs还没提供相应的解决方法(我用的是EXTJS2.3版本).这个就是tbar的问题,我们知道在extjs的panel里都可以有tbar和bbar,这是两个toolbar就是在panel上面或者下面有一排按钮(button),说实在这个我是比较喜欢的,把修改,保存,新增放在上面是非常好的选择,比单独把button定义在内容中好多了,我想说这个不足是,如果你有新增,修改,删除,保存,取消等等按钮的话,有些按钮是互斥的,就上面的按钮而然,一开始保存,取消都应该是灰色的,不可点的,只有点新增,修改后才能可点,但tbar好像现在做不到,我们可以从一个formpanel里得到toolbar,但这是工具条,我们的按钮是在这个工具条里的,但是我们从工具条得按钮却没有办法了,这个工具条并没有给你提供得到按钮的方法.这个有哪位高手可以改源码,加一个这样的方法可能会更好了一些.P话不说了.

再一个想说一下的,我弄了一个extjs跟struts2结合,这里一个问题弄了两夜,因为struts2是现学的,不是太懂,我在用extjs提交表单后,在struts2的action里总是得不到表单元素中的值,后台打印出来的是null,其实这里并没有什么技术含量,struts2里只要在action里配置表单元素的属性和get,set方法就可以了,我们就可以直接取值了.但是我总是弄不出来,在网找也没找到帮助,后来还是靠自己吧,于是把问题一个一个分解来找原因,后来发现我在前台的extjs里在处理表单提交时写了几句代码,问题就出在这里,我的想法是这样的,表单元素点保存后,提交给后台,那么这些元素就不能再编辑了,就是灰了,我设成disable,就是这个disable,

handler:function(){
    
             f.getForm().submit({
              method:'POST',
              params:'',
              success:function(){
               Ext.Msg.alert("保存成功");
               },

               f.getForm().findField("funcname").disable();
               f.getForm().findField("url").disable();
               f.getForm().findField("funcdes").disable();
               f.getForm().findField("isleaf").disable();
             failure:function(){
               Ext.Msg.alert("保存失败!");
              }
             });

这是原码,上面的要在后台处理成功后才能设成disable也就是要把那些代码放在success里.

handler:function(){
    
             f.getForm().submit({
              method:'POST',
              params:'',
              success:function(){
               Ext.Msg.alert("保存成功");
               f.getForm().findField("funcname").disable();
               f.getForm().findField("url").disable();
               f.getForm().findField("funcdes").disable();
               f.getForm().findField("isleaf").disable();
              },
              failure:function(){
               Ext.Msg.alert("保存失败!");
              }
             });

另一个问题是combo这个下拉框, 我们都知道下拉框有两个值的,一个是显示值,一个是实际值,combo提供了取显示值和实际的方法getRawValue(),和getValue();但这些是用在前台取值用的,我传到后台后,发现打印出来的值是显示值,我们一般都是要实际值的,原来extjs里面还有一个属性叫做hiddenName,如果不配的话我们在后台就是取显示值,这里给他一个名字不要跟combo 的id一样就可以了,action配一个跟他一样的属性,这样我们就取这个属性的值,这就是实际值了.

好了不说了,烧饭去,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值