We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy. Image for the cookie policy date
close icon

How to get current cell value in DataBoundDataGrid

How do you get the value (not display value) of a dropdown box in a datagrid? Been using memberRowIndex = (Me.grdGroup.CurrentCell.RowIndex()) Me.grdGroup(memberRowIndex, 1).CellValue to get the text value of the dropdown box in the datagrid. Need the value (int) not the text string. Thanks, Dan

7 Replies

AD Administrator Syncfusion Team September 12, 2005 11:22 PM UTC

To get the value, you should use grid(rowIndex, ColIndex).CellValue. To get the display value, you should use grid(rowIndex, ColIndex).FormattedText. In our \Syncfusion\Essential Studio\3.3.0.0\Windows\Grid.Windows\Samples\DataBound\GDBGcombos sample, if you add a button to the form with this button handler, it displays the ValueMember and the DisplayMember as expected. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Console.WriteLine(Me.gridDataBoundGrid1(1, 2).CellValue) Console.WriteLine(Me.gridDataBoundGrid1(1, 2).FormattedText) End Sub


EL Elsa May 31, 2006 11:37 PM UTC

Hi! I''ve been also trying to figure out how to retrieve the value (ValueMember) from the combo box. I followed your instructions and I am not able to see a different value for the CellValue and the FormattedText properties of the cell. These have the same values: (string)grdImport[CurrentRow, COLUMN_CLIENT_STUDY_NAME].FormattedText (string)grdImport[CurrentRow, COLUMN_CLIENT_STUDY_NAME].CellValue I set each row''s combo box with the following: grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].DataSource = clientStudyListItems; grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].DisplayMember = "Name"; grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].ValueMember = "DatabaseName"; grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].ExclusiveChoiceList = false; grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].CellValue = clientStudyListItems[selectedIndex].Name; where the DataSource is a custom class (attached). Is there anything that I am missing? Thanks in advance!


EL Elsa May 31, 2006 11:38 PM UTC

Datasource class attached.

ClientStudyListItems.zip


AD Administrator Syncfusion Team June 1, 2006 04:53 AM UTC

Hi Elsa, You need to set the cellvalue property of the cell in a grid to value member value. Here is a code snippet. grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].DataSource = clientStudyListItems; grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].DisplayMember = "Name"; grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].ValueMember = "DatabaseName"; grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].ExclusiveChoiceList = false; ///>>>>>>>end Modification<<<<<<<<<<<<<<<< /// DatabaseName is a valuemember grdImport[rowIndex, COLUMN_CLIENT_STUDY_NAME].CellValue = clientStudyListItems[selectedIndex].DatabaseName; ///>>>>>>>End Modification<<<<<<<<<<<<<<<< Please let me know if this helps. Regards, Haneef


EL Elsa June 1, 2006 01:44 PM UTC

Thanks for your prompt response! I think I''m getting closer to a solution with your help. I did change the code as you suggested. Now, when I go to the next page (by clicking on a button), the display text changes to the value. Is there a way to capture an event when the display text changes its value to see what is changing it? Thank you very much!


AD Administrator Syncfusion Team June 2, 2006 05:34 AM UTC

Hi Elsa, To get the current cell new value, you should use Renderer.ControlValue. To get the current cell new display value, you should use Renderer.ControlText . You need to assign the renderer''s controltext in a button''s click event to fire the current cell changed event. Here is a code snippet private void button2_Click(object sender, System.EventArgs e) { this.gridDataBoundGrid1.CurrentCell.MoveTo(1,1); //You need to assign the controlText to fire the CurrentCellChanged Event. this.gridDataBoundGrid1.GetCellRenderer(1,1).ControlText = "3"; this.gridDataBoundGrid1[1,1].Text = "3"; this.gridDataBoundGrid1.RefreshRange(GridRangeInfo.Cell(1,1)); } private void gridDataBoundGrid1_CurrentCellChanged(object sender, System.EventArgs e) { GridCurrentCell cc = this.gridDataBoundGrid1.CurrentCell; string s = "New Display Text :" + cc.Renderer.ControlText + Environment.NewLine + "Old Display Text :" + this.gridDataBoundGrid1[cc.RowIndex ,cc.ColIndex].FormattedText; MessageBox.Show(s); } Here is a sample. http://www.syncfusion.com/Support/user/uploads/ComboGDBG_a6163c22.zip Let me know if this helps. Regards, Haneef


EL Elsa June 2, 2006 01:05 PM UTC

Thank you for all your help! You''re awesome!

Loader.
Live Chat Icon For mobile
Up arrow icon