But my problem is if i want to change the source all values on the grid changes except selected row or current row. I changed all the property of the rows and cells property (IsSelected,IsCurrent...) but value never changes.
private void btnCancelChanges_Click(object sender, EventArgs e)
{
RouteGrid1.CurrentRow = null;
RouteGrid1.Enabled = false;
if (MessageBox.Show("...", "...", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
{
DataRow[] Result = null;
this.Cursor = Cursors.WaitCursor;
foreach (DataTable routeTable in viewSalesmanInfo.RouteTableCollection)
{
if (routeTable != null && routeTable.Rows.Count > 0 && !String.IsNullOrEmpty(routeTable.TableName))
{
Result = routeTable.Select("m_Current_State_Id = 0 AND Current_State_Id = -1");
if (Result != null && Result.Length > 0)
foreach (DataRow addCustomer in Result)
routeTable.Rows.Remove(addCustomer);
Result = routeTable.Select(
"(OrderRoute <> m_OrderRoute Or " +
"PaymentRoute <> m_PaymentRoute Or " +
"DeliveryRoute <> m_DeliveryRoute Or " +
"MergeRoute <> m_MergeRoute Or " +
"Route_Position <> m_Route_Position)" +
" OR m_Current_State_Id <> Current_State_Id");
if (Result != null && Result.Length > 0)
foreach (DataRow updateCustomer in Result)
{
updateCustomer.BeginEdit();
updateCustomer["Current_State_Id"] = updateCustomer["m_Current_State_Id"];
updateCustomer["Route_Position"] = updateCustomer["m_Route_Position"];
updateCustomer["MergeRoute"] = updateCustomer["m_MergeRoute"];
updateCustomer["OrderRoute"] = updateCustomer["m_OrderRoute"];
updateCustomer["PaymentRoute"] = updateCustomer["m_PaymentRoute"];
updateCustomer["DeliveryRoute"] = updateCustomer["m_DeliveryRoute"];
updateCustomer.EndEdit();
}
}
}
this.Cursor = Cursors.Default;
this.RouteGrid1.MasterTemplate.Refresh();
RouteGrid1.Enabled = true;
}
}