AD
Administrator
Syncfusion Team
October 27, 2004 02:54 PM UTC
Set the Debugger in Visual Studio to Break on exception (using the Debug/Exceptions menu and choosing Common Language Rutime), and try your steps. It may be that some exception is being thrown that is causing this behavior.
Are you trying to programatically do these steps, or are you typing into teh grid to do these steps? If you are doing this from code, can you post the code you are trying to use? Better yet, can you post a sample project showing the problem?
AD
Administrator
Syncfusion Team
October 27, 2004 03:02 PM UTC
Here is the code which sets up the GDBG.
AssignmentGrid.ListBoxSelectionMode = SelectionMode.MultiExtended;
AssignmentGrid.SetRowHeight(0, 0, 2 * AssignmentGrid.GetRowHeight(0));
AssignmentGrid.Selections.Clear();
AssignmentGrid.CurrentCellChanged += new EventHandler(AssignmentGrid_CurrentCellChanged);
AssignmentGrid.RowEnter += new GridRowEventHandler(AssignmentGrid_RowEnter);
this.AssignmentGrid.RowLeave += new Syncfusion.Windows.Forms.Grid.GridRowEventHandler(this.AssignmentGrid_RowLeave);
AssignmentGrid.MouseDown += new MouseEventHandler(AssignmentGrid_MouseDown);
AssignmentGrid.AllowDragSelectedCols = true;
AssignmentGrid.ListBoxSelectionMode = System.Windows.Forms.SelectionMode.None;
AssignmentGrid.Properties.RowHeaders = true;
AssignmentGrid.ActivateCurrentCellBehavior = Syncfusion.Windows.Forms.Grid.GridCellActivateAction.ClickOnCell;
AssignmentGrid.PrepareViewStyleInfo += new GridPrepareViewStyleInfoEventHandler(AssignmentGrid_PrepareViewStyleInfo);
AssignmentGrid.GridBoundColumns.AddRange(this.gridColumns);
AD
Administrator
Syncfusion Team
October 27, 2004 03:08 PM UTC
Here is the code which sets up the GDBG.
AssignmentGrid.ListBoxSelectionMode = SelectionMode.MultiExtended;
AssignmentGrid.SetRowHeight(0, 0, 2 * AssignmentGrid.GetRowHeight(0));
AssignmentGrid.Selections.Clear();
AssignmentGrid.CurrentCellChanged += new EventHandler(AssignmentGrid_CurrentCellChanged);
AssignmentGrid.RowEnter += new GridRowEventHandler(AssignmentGrid_RowEnter);
this.AssignmentGrid.RowLeave += new Syncfusion.Windows.Forms.Grid.GridRowEventHandler(this.AssignmentGrid_RowLeave);
AssignmentGrid.MouseDown += new MouseEventHandler(AssignmentGrid_MouseDown);
AssignmentGrid.AllowDragSelectedCols = true;
AssignmentGrid.ListBoxSelectionMode = System.Windows.Forms.SelectionMode.None;
AssignmentGrid.Properties.RowHeaders = true;
AssignmentGrid.ActivateCurrentCellBehavior = Syncfusion.Windows.Forms.Grid.GridCellActivateAction.ClickOnCell;
AssignmentGrid.PrepareViewStyleInfo += new GridPrepareViewStyleInfoEventHandler(AssignmentGrid_PrepareViewStyleInfo);
AssignmentGrid.GridBoundColumns.AddRange(this.gridColumns);
//
// AssignmentGrid
//
AssignmentGrid.VerticalThumbTrack = true;
AssignmentGrid.HorizontalThumbTrack = true;
AssignmentGrid.AccessibilityEnabled = true;
AssignmentGrid.ActivateCurrentCellBehavior = Syncfusion.Windows.Forms.Grid.GridCellActivateAction.DblClickOnCell;
AssignmentGrid.AllowDragSelectedCols = true;
AssignmentGrid.AllowDrop = true;
AssignmentGrid.ControllerOptions = ((Syncfusion.Windows.Forms.Grid.GridControllerOptions)(((((Syncfusion.Windows.Forms.Grid.GridControllerOptions.ClickCells | Syncfusion.Windows.Forms.Grid.GridControllerOptions.DragSelectRowOrColumn)
| Syncfusion.Windows.Forms.Grid.GridControllerOptions.SelectCells)
| Syncfusion.Windows.Forms.Grid.GridControllerOptions.ExcelLikeSelection)
| Syncfusion.Windows.Forms.Grid.GridControllerOptions.ResizeCells)));
this.AssignmentGrid.Dock = System.Windows.Forms.DockStyle.Fill;
AssignmentGrid.ListBoxSelectionMode = System.Windows.Forms.SelectionMode.MultiSimple;
AssignmentGrid.Location = new System.Drawing.Point(0, 0);
this.AssignmentGrid.Name = "AssignmentGrid";
AssignmentGrid.OptimizeInsertRemoveCells = true;
AssignmentGrid.Properties.RowHeaders = false;
AssignmentGrid.ShowCurrentCellBorderBehavior = Syncfusion.Windows.Forms.Grid.GridShowCurrentCellBorder.GrayWhenLostFocus;
AssignmentGrid.Size = new System.Drawing.Size(354, 264);
AssignmentGrid.SortBehavior = Syncfusion.Windows.Forms.Grid.GridSortBehavior.DoubleClick;
AssignmentGrid.TabIndex = 0;
AssignmentGrid.UseListChangedEvent = true;
Here is the code which is called to add the new row to the Collection bound to the Grid:
AssignmentGrid.BeginUpdate();
WorkAssignment workAssignment = null;
workAssignment = wrapper.manageDailyAssignments.CreateNewWithDefaults();
DailyAssignmentWrapper newAssignment = new DailyAssignmentWrapper(workAssignment, wrapper.manageDailyAssignments.FieldWorkers);
newAssignment.IsDirty = true;
wrapper.Add(newAssignment);
AssignmentGrid.EndUpdate();
I setup the break point at the time when the OnListChanged event is called and within the Set for the affected proeprties on the bound object. I''m breaking in both places on what looks like the Syncfusion calls but can''t figure out why the previous row is rewritten with the default values.
AD
Administrator
Syncfusion Team
October 27, 2004 03:34 PM UTC
Exactly what is the DataSource here? It looks like some kind of custom collection, correct?
Does it implement IBindingList? If you place a stop down in the collection code, do you see the values saved as they should be when you leave the grid row?
AD
Administrator
Syncfusion Team
October 27, 2004 04:16 PM UTC
Another thing to try would be to drop a WindowsForms DataGrid on a form and try to use it to update your custom collection to see if that works. If it does, just drop a GridDataBoundGrid on the same form and see if that works. This way you might be able to narrow down what is not working properly.
AD
Administrator
Syncfusion Team
October 27, 2004 05:02 PM UTC
Yes, it is a custom collection and it does implement IBindingList.
>Exactly what is the DataSource here? It looks like some kind of custom collection, correct?
>
>Does it implement IBindingList? If you place a stop down in the collection code, do you see the values saved as they should be when you leave the grid row?
AD
Administrator
Syncfusion Team
October 27, 2004 05:45 PM UTC
I modified our customers sample which uses a custom collection to see if I could reproduce the problem. It is attached below. The Test button will add a new row directly to the custom collection, and it does not seem to prevent the grid from saving changes that have been made.
Can you reproduce the problem in this sample?
CS_2045.zip
AD
Administrator
Syncfusion Team
October 27, 2004 07:21 PM UTC
Hi!
I changed the properties of your grid to resamble all the setting I''m using include call backs ( all included in the attached file ).
After that the behavior changed similar to the problems I''m having.
Here is the description of the steps:
1. Run application.
2. Two rows show up in the Grid.
3. Press "Test" button.
4. Two rows are added to the Grid
First added row: ID = 10, First Name = First10,
Second added row: ID = 2, First Name = ""
5. Click ID Cell ( Value 10 ) on the first added row.
6. Change the ID from 10 to 20.
7. Don''t leave the cell and press "Test" key.
8. The ID Cell value is changed to 3, the First Name cell value in the first added row disapears.
The behavior I would excpect is that the ID cell value and First name cell string are not changed in the first added row but the new row is added.
Sorry for the spelling errors.
>I modified our customers sample which uses a custom collection to see if I could reproduce the problem. It is attached below. The Test button will add a new row directly to the custom collection, and it does not seem to prevent the grid from saving changes that have been made.
>
>Can you reproduce the problem in this sample?
>
>
CS_2045.zip
>
>
ModifiedSample_24.zip
AD
Administrator
Syncfusion Team
October 27, 2004 07:37 PM UTC
In your sample, when I click the Test button, I only get a single row with the value 10 in it. I do not see a second row with a 2 in it. Did you send the sample you wanted to send? The buttonn handler for the Test button in your sample seems to be the same as the original sample.
AD
Administrator
Syncfusion Team
October 27, 2004 07:48 PM UTC
I am using version 2.1.0.9. What version are you using?
AD
Administrator
Syncfusion Team
October 27, 2004 07:52 PM UTC
Hi!
I think I send all the right stuff, but in case I''m reposting the Zip file just to be sure.
>In your sample, when I click the Test button, I only get a single row with the value 10 in it. I do not see a second row with a 2 in it. Did you send the sample you wanted to send? The buttonn handler for the Test button in your sample seems to be the same as the original sample.
ModifiedSample_2239.zip
AD
Administrator
Syncfusion Team
October 27, 2004 07:56 PM UTC
I''m using 2.0.5.14.
I will do an upgrade and see if that changes anything.
>I am using version 2.1.0.9. What version are you using?