2011-12-10 117 views
0

我有一个网格与文本项目模板插入数据从网格到数据库。我必须在运行时做出一些公式在出回发页面任何人都可以帮助我在哪个事件我可以做到这一点我的代码是波纹管。在运行时GridView计算

For Each gvRow2 As GridViewRow In GridView1.Rows 
      Dim txtNetWt As TextBox = CType(gvRow2.FindControl("txtNetWt"), TextBox) 
      Dim txtGrossWt As TextBox = CType(gvRow2.FindControl("txtGrossWt"), TextBox) 
      Dim txtTareWt As TextBox = CType(gvRow2.FindControl("txtTareWt"), TextBox) 
      txtNetWt.Text = Val(txtGrossWt.Text) - Val(txtTareWt.Text) 

     Next 
+0

在ItemTemplate中或EditeItemTemplate添加文本框? – adatapost

+0

这些都添加在项目模板中,我想计算在每行中当总重量和皮重野输入没有刷新后回页面。谢谢 –

+0

所以你应该使用JavaScript(Ajax)。 – adatapost

回答

0

您可以使用Asp.Net Ajax扩展控件,甚至更好的jQuery。看看代码 - JavaScript的工作原理是:

标记:

<head runat="server"> 
<title></title> 
<script type="text/javascript"> 
    function doThat(cells) { 
     var result = parseFloat(cells.childNodes[1].value) + parseFloat(cells.childNodes[3].value); 
     if (!isNaN(result)) 
      cells.childNodes[5].value = result; 
    } 
</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"> 
<Columns> 
    <asp:TemplateField> 
     <ItemTemplate> 
      <asp:TextBox ID="TextBox1" onchange="doThat(this.parentNode)" runat="server"> 
      </asp:TextBox> 
      <asp:TextBox ID="TextBox2" onchange="doThat(this.parentNode)" runat="server"> 
      </asp:TextBox> 
      <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox> 
     </ItemTemplate> 
    </asp:TemplateField> 
</Columns> 
</asp:GridView> 
</div> 
</form>