关于extjs的监听算值的问题
看上图,点击添加明细出来一行,填写上人数和元/人之后,自动计算出金额;添加第二行,也是一样。最下面应该还有个计算总额文本框,根据每行的的金额,自动计算出来。这个总额的文本...
看上图,点击添加明细出来一行,填写上人数和元/人之后,自动计算出金额;添加第二行,也是一样。最下面应该还有个计算总额文本框,根据每行的的金额,自动计算出来。这个总额的文本框是和上面的金额关联实时变的,有一种方法是用extjs给元/人,加入失焦监听,在更改金额里的值,还有在遍历添加了多少行,取出每行的金额,计算出来加入到总额文本框,但是代码不会写
在来个完整截图,我希望能有个小示例,本人对extjs不是很了解,提高悬赏报答各位 展开
在来个完整截图,我希望能有个小示例,本人对extjs不是很了解,提高悬赏报答各位 展开
2个回答
展开全部
在每一行的“人数”和“元/人”的编辑框添加:
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<store.data.length;i++){
var rec = store.getAt(i);//获取每一个record
var je = rec.getById("jine");//获取金额的值,这里的“jine”是你定义record里的哈
//var je = rec.data.jine;//这个等同于上面的那个
.....剩下的你自己完善吧,每一行的je都取出来了,累加吧~
}
更多追问追答
追问
Ext.getCmp('money').setValue(m*s);
我使用这段代码怎么不起作用啊,用alert打出来是object,证明没有出错,但是金额框内没有任何显示
追答
alert(m*s)是数字么?
展开全部
你不觉得 你那个思路很麻烦吗?
我的思路:
你这个页面不属于edit....Panel页面吧
如果是gridPanel页面,那么只有添加 没有修改 合理吗
你的需求,完全可以在添加保存 那里实现
点击保存------将当前这个对象传到后台,有内容,人数,元/人,这些后台都可以获取到。你完全可以在后台里面算出金额。然后执行insert sql,这样不就把金额保存到数据库了吗。然后 gridPanel页面 刷新 不就达到效果了吗
你说的 下面 有个总金额 。那么 这个总金额肯定不可能 单独显示在grid里面对吧,肯定会把这个值显示在bbar里面。那么这个金额完全可以通过后台查询sql 查出来。。为什么会这么做,因为你这个页面肯定是要进行分页的,放在bbar里面的金额 是所有记录的金额,你如果放在别的地方 ,那么我问你 你不分页吗?
我的思路:
你这个页面不属于edit....Panel页面吧
如果是gridPanel页面,那么只有添加 没有修改 合理吗
你的需求,完全可以在添加保存 那里实现
点击保存------将当前这个对象传到后台,有内容,人数,元/人,这些后台都可以获取到。你完全可以在后台里面算出金额。然后执行insert sql,这样不就把金额保存到数据库了吗。然后 gridPanel页面 刷新 不就达到效果了吗
你说的 下面 有个总金额 。那么 这个总金额肯定不可能 单独显示在grid里面对吧,肯定会把这个值显示在bbar里面。那么这个金额完全可以通过后台查询sql 查出来。。为什么会这么做,因为你这个页面肯定是要进行分页的,放在bbar里面的金额 是所有记录的金额,你如果放在别的地方 ,那么我问你 你不分页吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询