是这样的``gridview的内容是一个购物车的列表``
内容有 商品名,单价,数量(数量是用JS控制可以修改的),总价,描述信息等等....
我想用JS来让总价=单价*数量`````可是不知道控制它的每一行```
单价 总价都是用的html控件的span```数量也是用的html控件的文本框```
如果把span的id值固定了``动态产生的每行又不一样````
希望各位大侠帮忙看看```搞了一天了``搞了头昏脑涨的```汗```
------解决方案--------------------------------------------------------
如果把span的id值固定了``动态产生的每行又不一样````
==========
比较直观的,这样定义你的 span 的 id,使其成为每行都是唯一的
<asp:templatefield>
<itemtemplate>
单价: <span id=spnPrice_ <%# Container.DataItemIndex %> > <%# Eval( "Price ") %> </span>
数量: <input type=text id=txtQuantity_ <%# Container.DataItemIndex %> onchange= "calculateAmount( <%# Container.DataItemIndex %> ) " />
金额: <span id=spnAmount_ <%# Container.DataItemIndex %> > </span>
</itemtemplate>
</asp:templatefield>
<script type= "text/javascript ">
function calculateAmount(itemIndex)
{
//debugger;
var price = parseFloat(document.getElementById( "spnPrice_ " + itemIndex).innerText);
var quantity = parseInt(document.getElementById( "txtQuantity_ " + itemIndex).value);
var spnAmount = document.getElementById( "spnAmount_ " + itemIndex);
spnAmount.innerText = price * quantity;
}
</script>
具体细节,自行修改
Good Luck!
------解决方案--------------------------------------------------------
我的做法是在PgGridView1_RowDataBound()中将GridView的Cell中的ClientID输出到客户端,然后document.getElementById( ' ')就可以取得控件,进而取得值,就可以操作了