首页 新闻 会员 周边 捐助

GridView里面数据计算

0
悬赏园豆:20 [已解决问题] 解决于 2012-11-28 13:47

我想得到的效果是当输入完成数量以后,就自动进行合计,然后显示到合计里面,总计和门票数也随之改变,跪求大师解

HuangChengYuan的主页 HuangChengYuan | 初学一级 | 园豆:121
提问于:2012-11-20 13:48
< >
分享
最佳答案
0

不用id也可以计算,在需要计算的文本框加上 onpropertychange="total(this);"


function total(obj) {

var table = obj.parentNode.parentNode.parentNode;
var totalcount = 0;
var totalprice = 0;


for (var i = 1, l = table.children.length; i < l; i++) {
var tr = table.children[i];
var count = parseInt(tr.childNodes[1].children[0].value);
var price = parseInt(tr.childNodes[2].children[0].value);
if (!isNaN(count) && !isNaN(price)) {
var total =count * price;
totalcount +=count;
totalprice += price;
tr.childNodes[4].children[0].innerHTML = total;
}
}
document.getElementById("总计的ID").value = totalcount;
document.getElementById("门票的ID").value = totalprice;
}

由于 gridview 生成的 html 可能会不一样。这个只是给你参考

收获园豆:20
geass.. | 小虾三级 |园豆:1821 | 2012-11-24 22:34
其他回答(7)
0

这个需要前端编写JavaScript来实现

飞来飞去 | 园豆:2057 (老鸟四级) | 2012-11-20 13:53
0

1.GridView外面放个updatepanel

文本框设置textchange事件,然后遍历所有数量文本框的值,把最新的数量显示出来即可。

2.或者用js实现。

Cat Qi | 园豆:761 (小虾三级) | 2012-11-20 13:55

这个文本框是放在GridView里面了,我都加不上事件- -

支持(0) 反对(0) HuangChengYuan | 园豆:121 (初学一级) | 2012-11-20 14:00

@HuangChengYuan: 你可以在页面上先放个文本框,然后双击把页面生成的代码和c#后台的代码都复制过去就行了!

支持(0) 反对(0) Cat Qi | 园豆:761 (小虾三级) | 2012-11-20 14:08

@HuangChengYuan: 用js实现起来太简单不过了。最好用Repeater,没有多余的html代码。

文本框失去焦点,你写个js方法,遍历整个table,jquery 操作dom,价格的文本框class为"price",你可以通过$('.price')得到当前行价格。数量不用我说了吧。每行的价格乘以数量,然后相加就是总额。

支持(0) 反对(0) Cat Qi | 园豆:761 (小虾三级) | 2012-11-20 14:12
0

那就给每个数量的文本框加入 onblur事件,当失去焦点时,然后把价格加入到总计里,是要编写JS的

叶小党 | 园豆:481 (菜鸟二级) | 2012-11-20 13:57

我就是在纠结这个JS该怎么写,我都获取不到GridView里面数量的文本框的ID

支持(0) 反对(0) HuangChengYuan | 园豆:121 (初学一级) | 2012-11-20 13:58

@HuangChengYuan: 怎么可能获取不到呢?GridView里面子控件ID都是通过一种特定的机制生成的,所以,在JS里面要取到的话,要用到控件的ClientID。

支持(0) 反对(0) 叶小党 | 园豆:481 (菜鸟二级) | 2012-11-20 14:02

@叶小党: 对呀 我在JS里面取得时抛出上下文中找不到控件,var count = document.getElementById("<%=Count.ClientID %>").Text;

支持(0) 反对(0) HuangChengYuan | 园豆:121 (初学一级) | 2012-11-20 14:06

@HuangChengYuan: 看一下html代码,看一下Count的ID最后是什么,然后看一下<%=Count.ClientID %>又被解析成了什么,看是否一致

支持(0) 反对(0) 叶小党 | 园豆:481 (菜鸟二级) | 2012-11-20 14:10
0

用JS来搞定吧

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-20 15:27
0

js搞定,如果需要,我可以给你写个例子

小兵仔 | 园豆:1240 (小虾三级) | 2012-11-20 17:11

恩嗯  给我个例子吧

谢谢

支持(0) 反对(0) HuangChengYuan | 园豆:121 (初学一级) | 2012-11-22 11:04
0

里面的那TextBox 你可以设置一个唯一的值:

然后用Jquery 获取值。。

在 水 一 方 | 园豆:1097 (小虾三级) | 2012-11-21 17:21
0

可以在绑定之前进行计算。

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-11-22 10:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册