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.
Unfortunately, activation email could not send to your email. Please try again.

How to get current cell value in DataBoundDataGrid

Thread ID:

Created:

Updated:

Platform:

Replies:

34534 Sep 12,2005 10:40 AM Jun 2,2006 09:05 AM Windows Forms 7
loading
Tags: GridControl
dan carr
Asked On September 12, 2005 10:40 AM

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

Administrator [Syncfusion]
Replied On September 12, 2005 07:22 PM

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

Elsa
Replied On May 31, 2006 07:37 PM

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!

Elsa
Replied On May 31, 2006 07:38 PM

Datasource class attached.

ClientStudyListItems.zip

Administrator [Syncfusion]
Replied On June 1, 2006 12:53 AM

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

Elsa
Replied On June 1, 2006 09:44 AM

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!

Administrator [Syncfusion]
Replied On June 2, 2006 01:34 AM

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

Elsa
Replied On June 2, 2006 09:05 AM

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

CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.

;