Hello,
I created a custom column and cell in my grid following the progress-bar example
https://docs.telerik.com/devtools/winforms/controls/gridview/cells/creating-custom-cells
But I have modified it so that I can view either a textBoxElement or a dropDownListElement depending on what data is in the cell. It all seems to work just fine until I scroll the grid. Scrolling visualy shuffles the data in the custom column. I've tried to take the cell-formatting route but without success. Is it possible to achieve this result somehow?
Public Class GridParameterValueElement Inherits GridDataCellElement Public Sub New(ByVal column As GridViewColumn, ByVal row As GridRowElement) MyBase.New(column, row) End Sub Private isInitialized As Boolean Private firstTimeIndexChanged As Boolean = True Private dropDown As RadDropDownListElement Private textBox As RadTextBoxElement Protected Overrides Sub CreateChildElements() MyBase.CreateChildElements() dropDown = New RadDropDownListElement() With { .DropDownStyle = Telerik.WinControls.RadDropDownStyle.DropDownList } textBox = New RadTextBoxElement() With { .Enabled = True, .ClickMode = Telerik.WinControls.ClickMode.Press, .ZIndex = -1 } If Me.Children.Contains(dropDown) Then Me.Children.Remove(dropDown) If Me.Children.Contains(textBox) Then Me.Children.Remove(textBox) Me.Children.Add(dropDown) Me.Children.Add(textBox) AddHandler dropDown.SelectedIndexChanged, AddressOf SelectedIndexChanged AddHandler textBox.TextChanged, AddressOf TextInBoxChanged 'AddHandler textBox.Click, AddressOf TextBox_Click End Sub Protected Overrides Sub DisposeManagedResources() RemoveHandler dropDown.SelectedIndexChanged, AddressOf SelectedIndexChanged RemoveHandler textBox.TextChanged, AddressOf TextInBoxChanged MyBase.DisposeManagedResources() End Sub 'Private Sub TextBox_Click(sender As Object, e As EventArgs) ' Dim test = sender 'End Sub Public Overrides Sub SetContent() MyBase.SetContent() If Me.RowInfo.Cells("DisplayValue").Tag IsNot Nothing Then If Not Me.isInitialized Then If Me.Children.Contains(textBox) Then Me.Children.Remove(textBox) With Me.dropDown .DataSource = Me.RowInfo.Cells("DisplayValue").Tag .ValueMember = ("DevelopmentTypeParameterValueId") .DisplayMember = ("ParameterValue") End With End If If Me.RowInfo.Tag IsNot Nothing Then RemoveHandler dropDown.SelectedIndexChanged, AddressOf SelectedIndexChanged dropDown.SelectedIndex = DirectCast(Me.RowInfo.Tag, Integer) AddHandler dropDown.SelectedIndexChanged, AddressOf SelectedIndexChanged Else RemoveHandler dropDown.SelectedIndexChanged, AddressOf SelectedIndexChanged dropDown.SelectedIndex = -1 AddHandler dropDown.SelectedIndexChanged, AddressOf SelectedIndexChanged End If ElseIf Me.Value IsNot Nothing AndAlso Me.Value IsNot DBNull.Value Then If Not Me.isInitialized Then If Me.Children.Contains(dropDown) Then Me.Children.Remove(dropDown) Me.textBox.Text = CStr(Me.Value) End If End If Me.isInitialized = True End Sub Protected Overrides ReadOnly Property ThemeEffectiveType() As Type Get Return GetType(GridDataCellElement) End Get End Property Public Overrides Function IsCompatible(ByVal data As GridViewColumn, ByVal context As Object) As Boolean Return TypeOf data Is GridViewParameterValueColumn AndAlso TypeOf context Is GridDataRowElement End Function End Class Public Class GridViewParameterValueColumn Inherits GridViewDataColumn Public Sub New(ByVal fieldName As String) MyBase.New(fieldName) End Sub Public Overrides Function GetCellType(ByVal row As GridViewRowInfo) As Type If TypeOf row Is GridViewDataRowInfo Then Return GetType(GridParameterValueElement) End If Return MyBase.GetCellType(row) End Function End Class
Hi Telerik support,
I've created a sample application with a gridview containing more combobox columns. In this forum I found some code snippets to auto open the dropdown box when one navigates to the cell (with the keybord arrow keys).
It seems to work fine except for one scenario..
click (with mouse) on the first column (which is readonly), then navigate to the next column with the arrowkey right. The focus jumps to the third column. If I navigate from the third column to the second (also with arrowkeys), it's ok.
Please try this also with column nr. 5 and 6. (so click on 5 and navigate to 6). After the application newly started, it also jumps away. But only the first time.
Can you help me out of this behaviour?
Kind regards,
Daniel Kaya
Hi, good day.
I have developed web applications using telerik controls with Visual Studio.Hi,
I am using a RadGridView in a window .
I am using RadDropDownListEditor for editing one of the cells in the column that has one element as list.
I want it to be able to set as empty on editingBut the change isn't persisting when I provide empty string.
According to the documentation, the change only persists when we select one of the other items in the list.
Is there any way I can set it as blank on providing empty string.