关于extjs的监听算值的问题

2025-02-24 08:28:04
推荐回答(2个)
回答1:

在每一行的“人数”和“元/人”的编辑框添加:

listeners:{//举例为“元/人”下的监听事件,按理说两个都需要的。
    blur:function(t){
       var m = t.getValue();  //获取了多少元1人
       var s = Ext.getCmp('id').getValue();//id是“人数”编辑框的id,获取人数
       var je = m*s;//这里有可能需要强转int,当然看你用什么组件了。  
       Ext.getCmp('jeid').setValue(je);//给金额编辑框赋值
       qjje += je;//这里可以采用简单的方法,通过全局变量记录总金额
       Ext.getCmp('zjeid').setValue(qjje);//给总金额编辑框赋值
   }  
}

 然后另一个也按这个写就行~~~

 

另外告诉你如何遍历取值:

 for(var i=0;i  var rec = store.getAt(i);//获取每一个record
  var je = rec.getById("jine");//获取金额的值,这里的“jine”是你定义record里的哈
  //var je = rec.data.jine;//这个等同于上面的那个
  .....剩下的你自己完善吧,每一行的je都取出来了,累加吧~    
}

回答2:

你不觉得 你那个思路很麻烦吗?

我的思路:
你这个页面不属于edit....Panel页面吧
如果是gridPanel页面,那么只有添加 没有修改 合理吗
你的需求,完全可以在添加保存 那里实现
点击保存------将当前这个对象传到后台,有内容,人数,元/人,这些后台都可以获取到。你完全可以在后台里面算出金额。然后执行insert sql,这样不就把金额保存到数据库了吗。然后 gridPanel页面 刷新 不就达到效果了吗

你说的 下面 有个总金额 。那么 这个总金额肯定不可能 单独显示在grid里面对吧,肯定会把这个值显示在bbar里面。那么这个金额完全可以通过后台查询sql 查出来。。为什么会这么做,因为你这个页面肯定是要进行分页的,放在bbar里面的金额 是所有记录的金额,你如果放在别的地方 ,那么我问你 你不分页吗?