我有一个Gridview,在templatefields中有文本框,我在其中动态添加列。
protected void grid()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("SerialNumber", typeof(string)));
dt.Columns.Add(new DataColumn("Material", typeof(string)));
dt.Columns.Add(new DataColumn("Bags", typeof(string)));
dt.Columns.Add(new DataColumn("GrossWt", typeof(string)));
dt.Columns.Add(new DataColumn("TareWt", typeof(string)));
dt.Columns.Add(new DataColumn("NetWt", typeof(string)));
dt.Columns.Add(new DataColumn("BillWt", typeof(string)));
DataRow dr = dt.NewRow();
dt.Rows.Add(dr);
dr["SerialNumber"] = 1;
GridView1.DataSource = dt;
GridView1.DataBind();
}
我需要让NetWt列使用GrossWt和TareWt列来自动调整值。公式应为(grosswt-tarewt)/ 1000。但我不知道如何去做。有任何想法吗??
答案 0 :(得分:1)
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e){
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[5] = (e.Row.Cells[3].Text - e.Row.Cells[4].Text)/1000
}
}
试试这个
答案 1 :(得分:0)
假设用户编辑了这些值,您可以将自己的处理程序添加到CellValidated事件中,然后使用值执行任何您喜欢的操作:
myDataGridView.CellValidated += new System.Windows.Forms.DataGridViewCellEventHandler(myDataGridView_CellValidated);
[...]
private void myGridView_CellValidated(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == myGridView.Columns["GrossWt"].Index){
myGridView.Rows[e.Index].Cells["NewWT"].Value = (
myGridView.Rows[e.Index].Cells["GrossWT"].Value -
myGridView.Rows[e.Index].Cells["TareWT"].Value ) /1000;
}
}