<asp:GridView
AutoGenerateColumns="false"
ID="GridView1" runat="server" Style="position: relative" OnRowDataBound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="price" runat="server" Style="position: relative"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="num" runat="server" Style="position: relative"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="amt" runat="server" Style="position: relative"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
public partial class SettleMent_Income_test10 : System.Web.UI.Page
{
wsBill.wsBill mybill = new wsBill.wsBill();
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
wsBill.BillQuery myBillQuery = new wsBill.BillQuery();
DataSet ds = new DataSet();
mybill.ExeQueryList(myBillQuery, ref ds);
this.GridView1.DataSource = ds;
this.GridView1.DataBind();
}
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
TextBox tbprice=(e.Row.Cells[0].FindControl("price") as TextBox);
TextBox tbnum = (e.Row.Cells[1].FindControl("num") as TextBox);
TextBox tbamt = (e.Row.Cells[2].FindControl("amt") as TextBox);
if (tbprice != null && tbnum != null && tbamt != null)
{
if (!string.IsNullOrEmpty(tbprice.Text))
{
tbprice.Text = "0";
}
if (!string.IsNullOrEmpty(tbnum.Text))
{
tbnum.Text = "0";
}
tbamt.Text = decimal.Parse(decimal.Parse(tbnum.Text) * decimal.Parse(tbprice.Text)).ToString();
StringBuilder script = new StringBuilder();
//输入数值之后总自动金额更新
script.Append(" var amount=0;");
script.Append(" vAmt=document.getElementById('" + tbamt.ClientID + "');");
script.Append(" vNum=document.getElementById('" + tbnum.ClientID + "');");
script.Append(" vPrice=document.getElementById('" + tbprice.ClientID + "');");
script.Append("var amt=parseFloat(vPrice.value)*parseFloat(vNum.value);");
script.Append("vAmt.value=amt;");
//只允许输入带小数的数字.
string scriptOnKeyPress=@"return /^[1-9]/d{9}/.test(this.value)?(//./.test(this.value)?(//./d{2}/.test
(this.value)?(event.keyCode==0):(event.keyCode>=48&&event.keyCode<=57)):(event.keyCode==46)):
(event.keyCode>=48&&event.keyCode<=57)";
tbprice.Attributes.Add("onblur", script.ToString());
tbprice.Attributes.Add("onkeypress", scriptOnKeyPress);
tbnum.Attributes.Add("onblur", script.ToString());
tbprice.Attributes.Add("onkeypress", scriptOnKeyPress);
}
}
}
}