I cant get the item template to reflect the text of the selected item in the radcombobox that is in the edititemtemplate of my programmatically created gridtemplatecolumn
Code for creating the template column:
01.Dim tempDB As New SqlDataSource02.Dim templateColumnName As String = col.Caption03.Dim templateColumn As New GridTemplateColumn()04. 05.templateColumn.DataField = col.Caption06.templateColumn.ItemTemplate = New LCDisp(templateColumnName, ddQuery, DiConnectionString)07.templateColumn.EditItemTemplate = New DDEdit(templateColumnName, ddQuery, DiConnectionString)08.templateColumn.HeaderText = templateColumnName09. 10.templateColumn.UniqueName = col.Caption11. 12.grdReport.Columns.Add(templateColumn)
Code for LCDisp template:
01.Private Class LCDisp02. Implements ITemplate03. Protected lblCont As Label04. Private colname As String05. Private DSQuery As String06. Private DiConnectionString As String07. 08. Public Sub New(ByVal cName As String, ByVal query As String, ByVal connString As String)09. colname = cName10. DSQuery = query11. DiConnectionString = connString12. End Sub13. 14. Public Sub InstantiateIn(container As UI.Control) Implements ITemplate.InstantiateIn15. lblCont = New Label16. lblCont.ID = "lControl" + colname17. AddHandler lblCont.DataBinding, AddressOf litCont_DataBinding18. container.Controls.Add(lblCont)19. End Sub20. 21. Sub litCont_DataBinding(ByVal sender As Object, ByVal e As EventArgs)22. Dim l As Label = DirectCast(sender, Label)23. Dim container As GridDataItem = DirectCast(l.NamingContainer, GridDataItem)24. l.Text = (DirectCast(container.DataItem, DataRowView))(colname).ToString()25. End Sub26.End Class
Code for DDEdit:
01.Private Class DDEdit02. Implements ITemplate03. Protected DropDown As RadComboBox04. Private colname As String05. Private DSQuery As String06. Private DiConnectionString As String07. Private MyContainerDataItem As GridDataItem08. 09. Public Sub New(ByVal cName As String, ByVal query As String, ByVal connString As String)10. colname = cName11. DSQuery = query12. DiConnectionString = connString13. End Sub14. 15. Public Sub InstantiateIn(container As UI.Control) Implements ITemplate.InstantiateIn16. DropDown = New RadComboBox17. 18. Dim dv2 As New DataView19. Dim oQuery As New cWjCoQuery20. 21. oQuery.Load(DSQuery, ConfigurationManager.ConnectionStrings(DiConnectionString).ConnectionString)22. 23. Dim tempDB As New SqlDataSource24. tempDB.ID = colname + "DB"25. 26. tempDB.SelectCommand = oQuery.SQLQuery27. tempDB.ConnectionString = ConfigurationManager.ConnectionStrings(DiConnectionString).ConnectionString28. 29. dv2 = tempDB.Select(DataSourceSelectArguments.Empty)30. DropDown.DataSource = tempDB31. If dv2.Table.Columns.Count > 1 Then32. DropDown.DataTextField = dv2.Table.Columns.Item(0).Caption33. DropDown.DataValueField = dv2.Table.Columns.Item(1).Caption34. Else35. DropDown.DataTextField = dv2.Table.Columns.Item(0).Caption36. DropDown.DataValueField = dv2.Table.Columns.Item(0).Caption37. End If38. 39. DropDown.DataBind()40. 41. MyContainerDataItem = TryCast(container.Parent, GridDataItem)42. If MyContainerDataItem Is Nothing Then43. MyContainerDataItem = TryCast(container.Parent.Parent, GridDataItem)44. End If45. If MyContainerDataItem IsNot Nothing Then46. Dim tmpSelVal = MyContainerDataItem.GetDataKeyValue(colname).ToString47. If Trim(tmpSelVal) <> "" Then48. DropDown.SelectedIndex = DropDown.FindItemIndexByValue(CInt(tmpSelVal))49. End If50. End If51. 52. container.Controls.Add(DropDown)53. End Sub54.End Class