当前位置: 代码迷 >> ASP.NET >> 怎样用js给gridview每行某个html控件附值啊求救啊搞了好久了`解决方案
  详细解决方案

怎样用js给gridview每行某个html控件附值啊求救啊搞了好久了`解决方案

热度:7991   发布时间:2013-02-25 00:00:00.0
怎样用js给gridview每行某个html控件附值啊??求救啊``搞了好久了``
是这样的``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( ' ')就可以取得控件,进而取得值,就可以操作了
  相关解决方案