一、改变GridView文本框内容,另一列自动更新,如:单价*数量=金额 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()); tbnum.Attributes.Add("onkeypress", scriptOnKeyPress); } }