Hi,
I'm having a small prob with grid reordering.Let me explain,got datagridview for adding the ingredients for recipe ,when adding each ingredients a priority number will be assigned like 1,2,3...etc.All these works fine but my real prob is that the user can edit the priority and change the value will show an eg:
No Ingredient
1 Milk
2 Egg
3 Water
4 Sugar
My client told that if he changes the no i.e suppose he is changing the sugar priority from 4 to 2 with my code it will swap the position i.e the o/p will be like this
No Ingredient
1 Milk
2 Sugar
3 Water
4 Egg
but he wants to shift the row downwards like this
No Ingredient
1 Milk
2 Sugar
3 Egg
4 Water
any idea will be grea help 2 me...
the code im using is:
if (e.RowIndex >= 0 && proceed == 1 && e.ColumnIndex == 7)
{
int currentvalue = dg_ingredients[e.ColumnIndex, e.RowIndex].Value.ToString().ToInt();
foreach (DataGridViewRow dg_ingredientsRow in dg_ingredients.Rows)
{
if (dg_ingredientsRow.Cells[7].Value.ToString().ToInt() == currentvalue && (dg_ingredientsRow.Index != e.RowIndex))
{
dg_ingredientsRow.Cells[7].Value = e.RowIndex + 1;
break;
}
}
dg_ingredients.Sort(new RowComparer(SortOrder.Ascending));
reorderlist(7);
}
function reorder:
void reorderlist(int cell_index)
{
proceed = 0;
int stepnumber = 1;
DataGridView dg = cell_index== 1? dg_directions: dg_ingredients;
foreach (DataGridViewRow dg_Row in dg.Rows)
{
dg_Row.Cells[cell_index].Value = stepnumber;
stepnumber++;
}
proceed = 1;
}