Я хотел бы добавить новую строку, когда пользователь нажимает кнопку добавления новой строки, а также добавить итоговый столбец и сохранить его в текстовом поле (TotalBill) и рассчитать вес (TotalWeight). Однако на данный момент он хранит только то, что было введено, а не добавляется к предыдущей общей сумме; Кроме того, как добавить последнюю строку, если пользователь не нажимает кнопку добавления
private void AddNewRowToGrid()
{
int rowIndex = 0;
if (ViewState["CurrentTable"] != null)
{
DataTable dtCurrentTable = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
if (dtCurrentTable.Rows.Count > 0)
{
for (int i = 1; i <= dtCurrentTable.Rows.Count; i++)
{
//extract the TextBox values
TextBox box1 = (TextBox)Gridview1.Rows[rowIndex].Cells[1].FindControl("TextBox1");
TextBox box2 = (TextBox)Gridview1.Rows[rowIndex].Cells[2].FindControl("TextBox2");
TextBox box3 = (TextBox)Gridview1.Rows[rowIndex].Cells[3].FindControl("TextBox3");
drCurrentRow = dtCurrentTable.NewRow();
drCurrentRow["RowNumber"] = i + 1;
dtCurrentTable.Rows[i - 1]["Column1"] = box1.Text;
dtCurrentTable.Rows[i - 1]["Column2"] = box2.Text;
dtCurrentTable.Rows[i - 1]["Column3"] = box3.Text;
OverallWeight.Text = PWeight(Convert.ToInt32(NetWeight.Text),
Convert.ToInt32(box3.Text)).ToString();
TotalBill.Text = TotalWeight(Convert.ToInt32(box3.Text)).ToString();
rowIndex++;
}
dtCurrentTable.Rows.Add(drCurrentRow);
ViewState["CurrentTable"] = dtCurrentTable;
Gridview1.DataSource = dtCurrentTable;
Gridview1.DataBind();
}
}
else
{
Response.Write("ViewState is null");
}
//Set Previous Data on Postbacks
SetPreviousData();
}
private int TotalWeight(int total)
{
int z = 0;
z = total+z;
return z;
}
private double Weight(double nw, int total)
{
const int ton = 2204;
const int bin = 75;
double w;
w = (nw * ton) - (bin * total);
return w;
}