Hi!
I'm trying to change a standart column to a combobox Column.
My way is to remove the original column with:
and add a new GridViewComboBoxColumn with:
At least I have two columns one with the Headertext "uzs_PosNeg" and one with the Headertext "positiv/negativ" (the ComboBoxColumn) When I change the Value in the Combobox (and change the row) - the value in the other column changes and the Combobox displays nothing.
How could I do this? Is there an easyer way to assign two values to the combobox instead of creating a Datatable?
regards
Willi
I'm trying to change a standart column to a combobox Column.
My way is to remove the original column with:
RadGridSubstances.Columns.Remove(RadGridSubstances.Columns("uzs_PosNeg")) |
and add a new GridViewComboBoxColumn with:
Dim comboBoxColumn As New GridViewComboBoxColumn |
comboBoxColumn.HeaderText = "positiv/negativ" |
comboBoxColumn.FieldName = "uzs_PosNeg" |
comboBoxColumn.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList |
' Create Custom Table for Combobox |
Dim comboDT As New DataTable |
comboDT.Columns.Add("Name", GetType(System.String)) |
comboDT.Columns.Add("Wert", GetType(System.Int16)) |
Dim myNewRow As DataRow = comboDT.NewRow() |
myNewRow("Name") = "positiv" |
myNewRow("Wert") = 1 |
comboDT.Rows.Add(myNewRow) |
Dim myNewRow2 As DataRow = comboDT.NewRow() |
myNewRow2("Name") = "negativ" |
myNewRow2("Wert") = 0 |
comboDT.Rows.Add(myNewRow2) |
comboBoxColumn.DataSource = comboDT |
comboBoxColumn.ValueMember = "Wert" |
comboBoxColumn.DisplayMember = "Name" |
comboBoxColumn.FieldName = "uzs_PosNeg" |
RadGridSubstances.Columns.Add(comboBoxColumn) |
At least I have two columns one with the Headertext "uzs_PosNeg" and one with the Headertext "positiv/negativ" (the ComboBoxColumn) When I change the Value in the Combobox (and change the row) - the value in the other column changes and the Combobox displays nothing.
How could I do this? Is there an easyer way to assign two values to the combobox instead of creating a Datatable?
regards
Willi
9 Answers, 1 is accepted
0
Hello willi,
Please note that you should not remove the standard column in order to use a GridViewComboBoxColumn. The standard column should be kept in RadGridView and the GridViewComboBoxColumn should point to the data field of the standard column by the FieldName property. The standard column is the column that actually holds the values. If you want to hide the standard column, you can just set is IsVisible property to false.
I am demonstrating a sample project demonstrating the approach. If you have additional questions, feel free to contact me.
Greetings,
Nikolay
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Please note that you should not remove the standard column in order to use a GridViewComboBoxColumn. The standard column should be kept in RadGridView and the GridViewComboBoxColumn should point to the data field of the standard column by the FieldName property. The standard column is the column that actually holds the values. If you want to hide the standard column, you can just set is IsVisible property to false.
I am demonstrating a sample project demonstrating the approach. If you have additional questions, feel free to contact me.
Greetings,
Nikolay
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
willi
Top achievements
Rank 1
answered on 17 Mar 2009, 12:53 PM
Thank you!
There's just one tiny problem. My Integer Column from the SQL-Database is a Decimal Column in the RadGrid. So my Combocolumn won't work.
How can I Change this column to a INT16 Column?
I tried:
but this won't work.
regards
Willi
There's just one tiny problem. My Integer Column from the SQL-Database is a Decimal Column in the RadGrid. So my Combocolumn won't work.
How can I Change this column to a INT16 Column?
I tried:
RadGridSubstances.Columns("uzs_PosNeg").DataType = GetType(System.Int32)but |
regards
Willi
0
Hi willi,
Thank you for getting back to me.
Please note that we have only one column type for all 'number' data columns - GridViewDecimalColumn. We do not have a special class called GridViewIntegerColumn. However, GridViewDecimalColumn, as I mentioned, covers all the 'number' data columns and its DataType depends on the type of the data column. Since the DataType is automatically generated from the type of the data column, you cannot change it.
Could you please share with us more details of the issue that you will have in the scenario of GridViewDecimalColumn and GridViewComboBoxColumn? I am not sure I understood you quite correctly, so any additional information will be of help.
Kind regards,
Nikolay
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Thank you for getting back to me.
Please note that we have only one column type for all 'number' data columns - GridViewDecimalColumn. We do not have a special class called GridViewIntegerColumn. However, GridViewDecimalColumn, as I mentioned, covers all the 'number' data columns and its DataType depends on the type of the data column. Since the DataType is automatically generated from the type of the data column, you cannot change it.
Could you please share with us more details of the issue that you will have in the scenario of GridViewDecimalColumn and GridViewComboBoxColumn? I am not sure I understood you quite correctly, so any additional information will be of help.
Kind regards,
Nikolay
the Telerik team
Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
willi
Top achievements
Rank 1
answered on 19 Mar 2009, 08:41 AM
This is the Problem: DemoVideo
And this is how I load a Table from a Database and assign it to the grid:
The uzs_PosNeg is a Integer Column
When I change one line of code from your Example from
original: gridDT.Columns.Add("uzs_PosNeg", GetType(System.Int16))
to
modified: gridDT.Columns.Add("uzs_PosNeg", GetType(System.Decimal))
I have the same effect (Video Link)
Thanks in advance for your help
regards
willi
And this is how I load a Table from a Database and assign it to the grid:
Public Sub loadSubstanceList(ByVal unt_id As Guid) |
log.Debug(unt_id.ToString) |
RadGridSubstances.DataSource = Nothing |
RadGridSubstances.Columns.Clear() |
Dim SQLDef As SqlCommand = SQLFunctions.initSQLDef |
Dim SQLWhere As String |
If unt_id = Nothing Then |
SQLWhere = " and 0 = 1 " |
Else |
SQLWhere = " and unt_id = @unt_id " |
SQLDef.Parameters.AddWithValue("unt_id", unt_id) |
End If |
SQLDef.CommandText = "select uzs_id, sub_Name Substanz, " & _ |
"isnull(ltrim(str(sub_UntererGw,10,1)) + '-' + ltrim(str(sub_OBererGw,10,1)) + ' ' + sub_einheit,'') OTB, " & _ |
"uzs_Chromatogramm, uzs_wert, uzs_PosNeg, sub_isWert, " & _ |
"sub_UntererGw, sub_ObererGw " & _ |
"from UntersuchungZuSubstanz " & _ |
"left outer join substanzen on UntersuchungZuSubstanz.sub_id = substanzen.sub_id " & _ |
"where UntersuchungZuSubstanz.deletedWhen is null " & SQLWhere & _ |
"order by substanzen.sub_Name" |
Dim dt As DataTable = SQLFunctions.getTable(SQLDef) |
RadGridSubstances.DataSource = dt |
' Oberfläche einstellen |
With RadGridSubstances |
.Columns("Substanz").ReadOnly = True |
.Columns("uzs_id").IsVisible = False |
.Columns("sub_isWert").IsVisible = False |
.Columns("uzs_wert").HeaderText = "Wert" |
.Columns("sub_UntererGw").IsVisible = False |
.Columns("sub_ObererGw").IsVisible = False |
.Columns("uzs_Chromatogramm").HeaderText = "Chromatogramm" |
.Columns("OTB").ReadOnly = True |
End With |
Dim comboBoxColumn As New GridViewComboBoxColumn |
comboBoxColumn.HeaderText = "positiv/negativ" |
comboBoxColumn.FieldName = "uzs_PosNeg" |
comboBoxColumn.DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList |
' Tabelle für Combobox erstellen |
Dim comboDT As New DataTable |
comboDT.Columns.Add("Name", GetType(System.String)) |
comboDT.Columns.Add("Wert", GetType(System.Int16)) |
Dim myNewRow As DataRow = comboDT.NewRow() |
myNewRow("Name") = "positiv" |
myNewRow("Wert") = 1 |
comboDT.Rows.Add(myNewRow) |
Dim myNewRow2 As DataRow = comboDT.NewRow() |
myNewRow2("Name") = "negativ" |
myNewRow2("Wert") = 0 |
comboDT.Rows.Add(myNewRow2) |
RadGridSubstances.Columns("uzs_PosNeg").IsVisible = False |
comboBoxColumn.DataSource = comboDT |
comboBoxColumn.ValueMember = "Wert" |
comboBoxColumn.DisplayMember = "Name" |
comboBoxColumn.FieldName = "uzs_PosNeg" |
RadGridSubstances.Columns.Add(comboBoxColumn) |
RadGridSubstances.MasterGridViewTemplate.BestFitColumns() |
End Sub |
The uzs_PosNeg is a Integer Column
When I change one line of code from your Example from
original: gridDT.Columns.Add("uzs_PosNeg", GetType(System.Int16))
to
modified: gridDT.Columns.Add("uzs_PosNeg", GetType(System.Decimal))
I have the same effect (Video Link)
Thanks in advance for your help
regards
willi
0
Hello willi,
Thank you for getting back to me.
I now understand your issue. When the DataType of your GridViewDecimalColumn is Decimal and your GridViewComboBoxColumn's ValueMember column type is Int16, the selected values are not persisted.
However, if the DataType of the GridViewDecimalColumn is Decimal and the type of the value member column is Decimal, you should not have such issues. I am attaching a sample project to demonstrate this.
As you will notice, we are referring to the column "Price" which is of type Decimal. Our data column for the GridViewComboBoxColumn is of type Decimal as well. On my side, the values are persisted using this approach. If you continue to experience the issue, please open a new support ticket and send me a sample project to demonstrates it. This will allow me to investigate the case further.
All the best,
Nikolay
the Telerik team
Check out Telerik Trainer , the state of the art learning tool for Telerik products.
Thank you for getting back to me.
I now understand your issue. When the DataType of your GridViewDecimalColumn is Decimal and your GridViewComboBoxColumn's ValueMember column type is Int16, the selected values are not persisted.
However, if the DataType of the GridViewDecimalColumn is Decimal and the type of the value member column is Decimal, you should not have such issues. I am attaching a sample project to demonstrate this.
As you will notice, we are referring to the column "Price" which is of type Decimal. Our data column for the GridViewComboBoxColumn is of type Decimal as well. On my side, the values are persisted using this approach. If you continue to experience the issue, please open a new support ticket and send me a sample project to demonstrates it. This will allow me to investigate the case further.
All the best,
Nikolay
the Telerik team
Check out Telerik Trainer , the state of the art learning tool for Telerik products.
0
willi
Top achievements
Rank 1
answered on 25 Mar 2009, 12:51 PM
Hi!
Here is an Example with the Problem as an vb.net Project. (Originally the Database is on a SQL Server).
Regards
Willi
Here is an Example with the Problem as an vb.net Project. (Originally the Database is on a SQL Server).
Regards
Willi
0
Hello willi,
Thank you for the sample project.
It helped me to reproduce the issue. We will investigate what is causing it in order to address it in one of our next releases. For the time being, please set the FieldSize of the uzs_PosNeg data column to Decimal. This resolves the issue in your sample project.
I am updating your Telerik points for the report. If you have additional questions, feel free to contact me.
Regards,
the Telerik team
Check out Telerik Trainer , the state of the art learning tool for Telerik products.
0
willi
Top achievements
Rank 1
answered on 27 Mar 2009, 08:42 AM
Solution (Workaround)!
In the Query I cast the Integer Column as Decimal Column:
uzs_wert,cast (uzs_PosNeg as Decimal(10,2)) as uzs_PosNeg
In the Query I cast the Integer Column as Decimal Column:
uzs_wert,cast (uzs_PosNeg as Decimal(10,2)) as uzs_PosNeg
0
Hi willi,
Thank you for sharing your workaround with the community.
Best wishes,
Nikolay
the Telerik team
Check out Telerik Trainer , the state of the art learning tool for Telerik products.
Thank you for sharing your workaround with the community.
Best wishes,
Nikolay
the Telerik team
Check out Telerik Trainer , the state of the art learning tool for Telerik products.