I am setting a grid's datasource as follows:
grid.DataSource = oDataTable;
This works great. Columns and rows filled out. When I try to hook up the combobox droplist like this:
grid.Model.ColStyles[colIndex].DataSource = oNewDataTable;
grid.Model.ColStyles[colIndex].DisplayMember = "sDispMember";
grid.Model.ColStyles[colIndex].ValueMember = "sValMember";
then the data from the original datasource is no longer displayed in the cells. Also, after making a selection from a combobox list and moving to another cell, the cell changes from the displaying the selection to being empty again.
Also, am I correct in thinking the method I'm using above for setting the combobox list will set all cells in the specified column?
Does something like grid[row, col].DataSource set the combobox list for a specific cell?
ADAdministrator Syncfusion Team January 22, 2003 02:02 PM
For a GridDataBoundGrid, you cannot use indexers to specify style properties for individual cells (other that the Text/CellValue property that is mapped back to your datasource). The reason is there is no storage to hold such properties in a griddataboundgrid. So, you cannot just set the DataSource for an individual cell.
To set styles for columns in a GridDataBoundGird, the preferred way would be to either add GridBoundColumns for each column, and then use the StyleInfo member of the GridBoundColumn to set these column properties. Or, if you do not add GridBoundColumns, you can use the internal columns, GridDataBoundGrid.Binder.InternalColumns, and set the style properties in its StyleInfo member for each column.
KJKenneth JohnsonJanuary 23, 2003 06:12 AM
I'm now adding the GridBoundColumn's for each column in my DataTable, but getting the same results. When I do not try to bind a an ArrayList as the datasource for the combo list, the data is displayed in the grid. When I try to set the combo list datasource, the grid data is not displayed in the cells. I'm using the following code.
for (int i=0; i
KJKenneth JohnsonJanuary 23, 2003 07:03 AM
I think I found my problem. The column is defined as type string, the DisplayMember being assigned is a string type, but the ValueMember I am assigning is an int. When I drop the assignment of the int ValueMember, everything is as expected. However, I need to keep track of the string displayed to the user and the underlying integer code assigned to the string. Any suggestions on how I can accomplish this?
ADAdministrator Syncfusion Team January 23, 2003 04:00 PM
the combobox will try to save the integer value from the ValueMember into the column. That means your underlying datatable
must accept this value. Make sure the column in your oDataTable is of type int and that the ValueMembers of the displayed
foreign table are valid values for the underlying column from oDataTable.