2014-12-23 4 views
-1

Я работаю над приложением winform, где пользователь может добавлять значения в datagridview. Я могу добавить данные в порядке, однако я зациклился на том, как обновлять значение непосредственно в ячейке. Я хочу иметь возможность обновлять ячейку в datagrid, которая, в свою очередь, будет обновлять вторую ячейку.Обновление ячейки в datagrid

CellQuantity * CellTotalValue Image Код:

private void btnAdd_Click(object sender, EventArgs e) 
    { 


    string articleId = cmbArticle.Text; 
    string productDescription = txtDesc.Text; 
    string type = txtType.Text; 
    string materialType = txtMaterial.Text; 
    string size = cmbSizes.Text; 
    string quantity = txtQuantity.Text; 
    string total = txtTotal.Text; 

    try 
    { 
     DataRow dr = dt.NewRow(); 
      //addrows 
      dr["Article"] = articleId; 
      dr["Description"] = productDescription; 
      dr["type"] = type; 
      dr["Material"] = materialType; 
      dr["Size"] = size; 
      dr["Quantity"] = quantity; 
      dr["total"] = total; 

     dt.Rows.Add(dr); 

     dgvView.DataSource = dt; 
    } 
    catch (Exception ex) 
    { 

    } 
} 

Как я могу идти о достижении этой цели? Спасибо.

+0

где оригинальная DataTable ..? это то, что вы хотите работать против переподготовки .. – MethodMan

+0

DataTable объявлен на уровне класса, можете ли вы объяснить, что вы имеете в виду, пожалуйста? – haris

+0

ok.. then when do dgvView.DataSource = dt добавить строку, которая связывает эти данные 'dgvView.DataBind()' – MethodMan

ответ

0

вы можете сделать это легко в CellEndEdit Event

положить это на вашей форме

 private void dgvView_CellEndEdit(object sender, DataGridViewCellEventArgs e) { 
     dgvView.Rows[e.RowIndex].Cells["TotalAmount"].Value = Convert.ToDecimal(dgvView.Rows[e.RowIndex].Cells["Quantitiy"].Value) * Convert.ToDecimal(dgvView.Rows[e.RowIndex].Cells["TotalAmount"].Value); 
    } 

поэтому, когда Quanitity клетка или TotalAmount клетка редактируется ячейка будет рассчитываться и обновляться

«не t забудьте проверить значение null, но это должно быть самоочевидным

+0

ok позвольте мне попробовать. – haris

+0

СПАСИБО! это именно то, что я был после, но теперь ... У меня есть эта проблема, если я редактирую значение количества ... он умножает его на текущее общее значение, а не базовое значение, например, 2 * 10 = 20, если я редактирую количество до 3 теперь общее = 60. Как я могу только раз это делать inital 10? – haris

+0

добро пожаловать и не забудьте отметить это как ответ. – Nocturnal