авторасчет динамической сетки - PullRequest
0 голосов
/ 31 мая 2011

У меня есть Gridview с текстовыми полями в полях шаблонов, в которые я динамически добавляю столбцы.

 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.Но я не знаю, как это сделать.Есть идеи??

Ответы [ 2 ]

1 голос
/ 31 мая 2011
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
    }
}

Попробуйте это

0 голосов
/ 31 мая 2011

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