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
;
}
}