Добавить новую строку сетки без расчета - PullRequest
0 голосов
/ 11 марта 2020

Я хотел бы добавить новую строку, когда пользователь нажимает кнопку добавления новой строки, а также добавить итоговый столбец и сохранить его в текстовом поле (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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...