在GridView里面计算

有这么一个GridView:

<asp:GridView ID="GridView_listNo" runat="server" Width="100%" AutoGenerateColumns="False" DataKeyNames="OID" CssClass="GView_BodyCSS" OnRowCancelingEdit="GridView_listNo_RowCancelingEdit" OnRowDataBound="GridView_listNo_RowDataBound" OnRowEditing="GridView_listNo_RowEditing" OnRowUpdating="GridView_listNo_RowUpdating">

      <Columns>                                        
           <asp:TemplateField HeaderText="单价"> 
           <EditItemTemplate>
                <input name="txt_procurementprice" type="text" value="<%# DataBinder.Eval(Container.DataItem, "单价")%>" style="width:50px" οnkeyup="countvalues2()"  class="InputCss"/>
            </EditItemTemplate>
            <ItemTemplate>
                 <input name="txt_procurementprice2" type="text" value="<%# DataBinder.Eval(Container.DataItem, "单价")%>" style="width:50px" οnkeyup="countvalues3(this)"  class="InputCss"/>
            </ItemTemplate>
            </asp:TemplateField>


            <asp:TemplateField HeaderText="数量"> 
            <EditItemTemplate>
                  <input name="txt_numberofapproved" type="text" value="<%# DataBinder.Eval(Container.DataItem, "数量")%>" style="width:50px" class="InputCss" readonly="readonly"/>
             </EditItemTemplate>
             <ItemTemplate>
                    <input name="txt_numberofapproved2" type="text" value="<%# DataBinder.Eval(Container.DataItem, "数量")%>" style="width:50px"  class="InputCss" readonly="readonly"/>
              </ItemTemplate>
              </asp:TemplateField>

 

              <asp:TemplateField HeaderText="金额"> 
              <EditItemTemplate>
                <input name="txt_procurementamount" type="text" value="<%# DataBinder.Eval(Container.DataItem, "金额")%>" style="width:50px" οnkeyup="countvalues2()"   class="InputCss"/>
              </EditItemTemplate>
             <ItemTemplate>
                <input name="txt_procurementamount2" type="text" value="<%# DataBinder.Eval(Container.DataItem, "金额")%>" style="width:50px" οnkeyup="countvalues3(this)"  class="InputCss"/>
             </ItemTemplate>
             </asp:TemplateField>
                     

      </Columns>

</asp:GridView>

 

这里要用到两个计算:1个是绑定数据源后的文本框里面做计算;一个是点编辑后的文本框里面做计算。

对应的javascript如下:

<script language="javascript" type="text/javascript">

function countvalues2()
 {
     var objnumber = document.getElementById("txt_numberofapproved");
     var objprice = document.getElementById("txt_procurementprice");
   
        if (objnumber.value != "" && objprice.value != "")
        {
            numstring="0123456789.";
            for(i=0; i<objnumber.value.length;i++){
            if (numstring.indexOf(objnumber.value.charAt(i))==-1){
              alert("数量有错!");
              return;
              }
            }
            numstring="0123456789."
            for(i=0; i<objprice.value.length;i++){
            if (numstring.indexOf(objprice.value.charAt(i))==-1){
              alert("单价有错!");
              return;
              }
            }
            document.getElementById("txt_procurementamount").value = (objnumber.value * objprice.value).toFixed(2);
     }
 }
 
 function countvalues3(_obj) {
        var tr=_obj.parentNode.parentNode;
      
        var objnumber=tr.cells[1].firstChild;
        var objprice=tr.cells[2].firstChild;
        if (objnumber.value != "" && objprice.value != "")
        {
            numstring="0123456789.";
            for(i=0; i<objnumber.value.length;i++){
            if (numstring.indexOf(objnumber.value.charAt(i))==-1){
              alert("数量有错!");
              return;
              }
            }
            numstring="0123456789."
            for(i=0; i<objprice.value.length;i++){
            if (numstring.indexOf(objprice.value.charAt(i))==-1){
              alert("单价有错!");
              return;
              }
            }
            tr.cells[3].firstChild.value=((objnumber.value==""?0:objnumber.value)*(objprice.value==""?0:objprice.value)).toFixed(2);
        }
    }
    </script>

 

 当然在后台读取文本框内容:

1,如果是编辑下:Request.Form["txt_procurementprice"].ToString()

2,对只是绑定数据后的读取内容:就需要遍历GridView,取到某行的数据:Request.Form["txt_procurementprice2"].ToString().Split(new char[] {','})[item.RowIndex].Trim()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值