or
<
telerik:RadGrid
ID
=
"trgStudAttend"
runat
=
"server"
AllowSorting
=
"True"
AutoGenerateColumns
=
"False"
GridLines
=
"None"
Skin
=
"Windows7"
CellSpacing
=
"0"
AllowMultiRowEdit
=
"True"
>
<
ClientSettings
EnableRowHoverStyle
=
"true"
/>
<
MasterTableView
DataKeyNames
=
"atdID"
EditMode
=
"InPlace"
>
<
Columns
>
<
telerik:GridBoundColumn
DataField
=
"atdID"
HeaderText
=
"ID"
Visible
=
"false"
UniqueName
=
"atdID"
>
</
telerik:GridBoundColumn
>
<
telerik:GridBoundColumn
DataField
=
"studDisplayName"
HeaderText
=
"Name"
UniqueName
=
"studDisplayName"
ReadOnly
=
"True"
>
</
telerik:GridBoundColumn
>
<
telerik:GridDropDownColumn
DataSourceID
=
"sdsTimeOfDayCodes"
HeaderText
=
"Time of Day"
ListTextField
=
"comb"
ListValueField
=
"todcCode"
UniqueName
=
"todcCode"
DataField
=
"atdTimeOfDayCode"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridDropDownColumn
DataSourceID
=
"sdsReasonCodes"
HeaderText
=
"Reason"
ListTextField
=
"comb"
ListValueField
=
"rfacCode"
UniqueName
=
"rfacCode"
DataField
=
"atdReasonCode"
>
</
telerik:GridDropDownColumn
>
<
telerik:GridBoundColumn
DataField
=
"atdComment"
HeaderText
=
"Comment"
UniqueName
=
"atdComment"
>
</
telerik:GridBoundColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
' Declarations
Dim
sqlString
As
String
=
""
Dim
sqlCom
As
SqlCommand
Dim
todcDDL
As
RadComboBox
' Loop through each student in the radgrid, and save the selected values to the details database
For
Each
i
As
GridDataItem
In
trgStudAttend.EditItems
todcDDL = i.FindControl(
"todcCode"
)
Next
Public Overrides Sub InitializeEditor(ByVal container As System.Web.UI.Control)
_combo = New RadComboBox()
_combo.ID = "MyCombo"
_combo.Width = 200
_combo.Height = 180
'For the Treeview
Dim treeItem As New ItemTemplateTreeView(CreateDataSource())
_combo.ItemTemplate = treeItem
Dim item As New RadComboBoxItem()
_combo.Items.Add(item)
_combo.OnClientDropDownOpened = "OnClientDropDownOpenedHandler"
container.Controls.Add(_combo)
End Sub
Public Overrides Function ExtractValues() As System.Collections.ArrayList
Dim list As ArrayList = New ArrayList()
list.Add(DirectCast(_combo.Items(0).FindControl("myTreeview"), RadTreeView).SelectedValue)
Return list
End Function
Public Overrides Sub SetEditorValues(ByVal values As System.Collections.ArrayList)
If Not values Is Nothing And values.Count > 0 Then
If values(0) Is Nothing Then
Return
End If
'Dim item As RadComboBoxItem = _combo.FindItemByValue(values(0).ToString())
Dim item As RadTreeNode = DirectCast(_combo.Items(0).FindControl("myTreeview"), RadTreeView).FindNodeByValue(values(0).ToString())
'If Not item Is Nothing Then
item.Selected = True
_combo.Items(0).Text = item.Text
' _combo.Items(0).Value = item.Value
End If
End If
End Sub
Protected Function CreateDataSource() As DataTable
Dim dataTable As New DataTable()
dataTable.Columns.Add(New DataColumn("Key", GetType(String)))
dataTable.Columns.Add(New DataColumn("Name", GetType(String)))
dataTable.Columns.Add(New DataColumn("ParentId", GetType(String)))
Dim AnalysItems As AnalysListItemList = TryCast(DataSource, AnalysListItemList )
For Each item As CategoryValueListItem In AnalysItems
Dim dr As DataRow = dataTable.NewRow()
dr("Key") = item.Key
dr("Name") = item.Name
If item.Category = item.Key Then
dr("ParentId") = DBNull.Value
Else
dr("ParentId") = item.Category End If
dataTable.Rows.Add(dr)
Next
Return dataTable
End Function
Public Class ItemTemplateTreeView
Implements ITemplate
Private dataTable As DataTable
Public Sub New(ByVal _dataTable As DataTable)
'
' TODO: Add constructor logic here
'
Me.dataTable = _dataTable
End Sub
Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn
Dim div As New HtmlGenericControl("div")
div.ID = "div1"
div.Attributes.Add("onclick", "StopPropagation(event);")
Dim tree As New RadTreeView()
Dim item As RadComboBoxItem = DirectCast(container, RadComboBoxItem)
tree.ID = "myTreeView"
tree.OnClientNodeClicking = "nodeClicking"
tree.DataTextField = "Name"
tree.DataFieldID = "Key"
tree.DataValueField = "Key"
tree.DataFieldParentID = "ParentId"
tree.DataSource = dataTable
tree.DataBind()
div.Controls.Add(tree)
container.Controls.Add(div)
End Sub
End Class