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. (Last updated on: November 16, 2018).
Unfortunately, activation email could not send to your email. Please try again.
Syncfusion Feedback

Display Data From Other Tables with GridDataBounGrid

Thread ID:

Created:

Updated:

Platform:

Replies:

20373 Oct 15,2004 07:30 AM UTC Oct 19,2004 05:28 AM UTC WinForms 5
loading
Tags: GridControl
Fernando
Asked On October 15, 2004 07:30 AM UTC

As it is possible to be shown data of other tables in a GridDataBounGrid ?

Administrator [Syncfusion]
Replied On October 15, 2004 08:05 AM UTC

You can handle foreign key tables by using ComboBox celltypes for your key column setting the style.DataSource, style.ValueMember and style.DisplayMember to you foreign key table items. See http://www.syncfusion.com/Support/Forums/message.aspx?MessageID=1514. If you want to add new column (no existing column in the table is a foreign key pair), then currently you have to add an unbound column, and use grid.Model.QueryCellInfo to provide the values for this unbound column. The grid\samples\databound\then GDBGMultiHeader sample shows how to add unbound columns. In this case, you would get the unbound values from your second table.

Fernando
Replied On October 15, 2004 09:42 AM UTC

What I really want is to show a TextBox instead of a ComboBox. Example: Table of the GridDataBoundGrid ==> Products Instead of the CategoryID column of the Products table, I want that it appears the value of the CategoryName field of the Categories table. >You can handle foreign key tables by using ComboBox celltypes for your key column setting the style.DataSource, style.ValueMember and style.DisplayMember to you foreign key table items. See http://www.syncfusion.com/Support/Forums/message.aspx?MessageID=1514. > >If you want to add new column (no existing column in the table is a foreign key pair), then currently you have to add an unbound column, and use grid.Model.QueryCellInfo to provide the values for this unbound column. The grid\samples\databound\then GDBGMultiHeader sample shows how to add unbound columns. In this case, you would get the unbound values from your second table.

Administrator [Syncfusion]
Replied On October 15, 2004 10:31 AM UTC

Using the combobox is the way to do this. The ComboBox will look like a textbox if you hide the button (style.ShowButton = GridShowButton.Hide). This is the simplest way to get this look. If you really don''t want to use the combobox, then using an unbound column is one appraoch to get what you want. Another would be to handle the QueryCellFormattedText/SaveCellFormattedText and swap the values those events. If your cell is readonly (just for display), another option would be to use the DrawCellDisplayText event and swap the text there. But it will be much simpler just to set properties to make the column use the combobox with its foreign support, and hide the button. The Grid\Samples\DataBound\GDBGcombos shows foreign key comboboxes, but it was all done with the designer but you can look at the designer generated code to see how to set such properties from code.

Fernando
Replied On October 19, 2004 04:32 AM UTC

Thank you very much. I have been proving and the only thing that I have arrived to do, is to show the CategoryName field, as I wanted, but now I have another problem, and is that, I want to show another field (for example description) of the Categories table, but I only have the CategoryID to be able to relate it to the table and nonencounter way to do it since since attempt to do gives error me of duplicated MappingName. There is some way to do it? this.gridDataBoundGrid1.DataSource = this.dataSet1; this.gridDataBoundGrid1.DataMember = "Products"; Syncfusion.Windows.Forms.Grid.GridBoundColumn laColumna = new Syncfusion.Windows.Forms.Grid.GridBoundColumn(); laColumna.HeaderText = "Product name"; laColumna.MappingName = "ProductName"; this.gridDataBoundGrid1.GridBoundColumns.Add(laColumna); laColumna = new Syncfusion.Windows.Forms.Grid.GridBoundColumn(); laColumna.HeaderText = "Category"; laColumna.MappingName = "CategoryID"; laColumna.StyleInfo.DataSource = this.dataSet1.CATEGORIES; laColumna.StyleInfo.CellType = "ComboBox"; laColumna.StyleInfo.DisplayMember = "CategoryName"; laColumna.StyleInfo.ValueMember = "CategoryID"; this.gridDataBoundGrid1.GridBoundColumns.Add(laColumna); laColumna.StyleInfo.ShowButtons = Syncfusion.Windows.Forms.Grid.GridShowButtons.Hide; this.gridDataBoundGrid1.Binder.InitializeColumns();

Administrator [Syncfusion]
Replied On October 19, 2004 05:28 AM UTC

If you want to display multiple foreign columns, then it is probably simpler just to use unbound columns to do this. If you want to use ComboBoxes like you are doing now, you would have to add alias columns to your sql query to get duplicate columns (with diffferent column names) in your main DataTable. Here is a sample using unbound columns to display 2 foreign columns based on the same ID field in the main table. It shows the foreign key in the grid as well as the two additional foreign columns. This lets you edit the foreign key which adds some additional code. If you do not need this editing of the foreign key, the cm.ItemChanged event handler can be removed. percent_8844.zip

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.

Please sign in to access our forum

or the page will be automatically redirected to sign-in page in 10 seconds.

Warning Icon 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.Close Icon

;