GridView中录入数量及单价的时候自动算出金额

 

DataGrid中有3个模板列包含Textbox分别为 DG_ShuLiang (数量) DG_DanJian(单价) DG_JinE(金额)分别在5.6.7列,要求在录入数量及单价的时候自动算出金额即:数量*单价=金额还要求录入时限制为 数值型.我如何用客户端脚本实现这个功能?

<asp:GridView ID="GridView1" runat="server" BackColor="White" BorderColor="#CC9966"

            BorderStyle="None" BorderWidth="1px" CellPadding="4" AutoGenerateColumns="False" Width="440px">

<Columns>

<asp:TemplateField HeaderText="数量">

 <ItemTemplate>

  <asp:TextBox id="ShuLiang" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_ShuLiang")%>'

        onkeyup="javascrip:DoCal()"/>

  <asp:RegularExpressionValidator id="revS" runat="server"

           ControlToValidate="ShuLiang" ErrorMessage="must be integer" ValidationExpression="^/d+$" />

</ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="单价">

 <ItemTemplate>

  <asp:TextBox id="DanJian" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_DanJian")%>' 

        onkeyup="javascrip:DoCal()"/>

  <asp:RegularExpressionValidator id="revS2" runat="server"

        ControlToValidate="DanJian" ErrorMessage="must be numeric" ValidationExpression="^/d+(/./d*)?$" />

 </ItemTemplate>

</asp:TemplateField>

<asp:TemplateField HeaderText="金额">

 <ItemTemplate>

  <asp:TextBox id="JinE" runat='server' Text='<%# DataBinder.Eval(Container.DataItem,"DG_JinE")%>'/>

 </ItemTemplate>

</asp:TemplateField>

 

 

</Columns>

</asp:gridview>

    </div>

    </form>

<script language="javascript">

function DoCal()

{

  var e = event.srcElement;

  var row = e.parentNode.parentNode;

  var txts = row.all.tags("INPUT");

  if (!txts.length || txts.length < 3)

     return;

  var q = txts[txts.length-3].value;

  var p = txts[txts.length-2].value;

  if (isNaN(q) || isNaN(p))

     return;

  q = parseInt(q);

  p = parseFloat(p);

  txts[txts.length-1].value = (q * p).toFixed(2);

}

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值