I need to get a reference to a combo box on that is in an edittemplatecolumn. I only need the reference on post back after the first combo box has an item selected.
As you can see below I have a very simple grid for testing purposes. I basically just want to select cmboCondition and have it auto post back. On item index changed, I want to populate cmboCondition2 however I can't get a reference to cmboCondition2.
<
telerik:RadGrid
ID
=
"gridConditions"
EnableTheming
=
"false"
runat
=
"server"
AllowPaging
=
"false"
AllowSorting
=
"false"
AllowFilteringByColumn
=
"false"
PageSize
=
"1000"
AutoGenerateColumns
=
"false"
>
<
GroupingSettings
CaseSensitive
=
"false"
/>
<
ClientSettings
>
<
Scrolling
AllowScroll
=
"False"
/>
<
Selecting
AllowRowSelect
=
"true"
/>
</
ClientSettings
>
<
MasterTableView
CommandItemDisplay
=
"Top"
AllowNaturalSort
=
"false"
NoMasterRecordsText
=
"There are no conditions. Please add one to the rule."
ShowHeader
=
"false"
>
<
CommandItemTemplate
>
<
div
style
=
"padding-left:8px; padding-right:8px; padding-top:6px; padding-bottom:6px;"
>
<
table
width
=
"100%"
>
<
tr
>
<
td
runat
=
"server"
Visible='<%# Not gridConditions.MasterTableView.IsItemInserted%>'>
<
asp:LinkButton
ID
=
"btnAddCondition"
runat
=
"server"
ToolTip
=
"Add Condition"
CommandName
=
"InitInsert"
Visible='<%# Not gridConditions.MasterTableView.IsItemInserted%>'><
asp:Image
ID
=
"imgAddCondition"
runat
=
"server"
ImageUrl
=
"~/images/add_button.gif"
/>Add</
asp:LinkButton
>
<
asp:LinkButton
ID
=
"btnDeleteCondition"
runat
=
"server"
ToolTip
=
"Delete Condition"
OnClientClick
=
" return confirm('Are you sure you want to delete the selected condition?');"
CommandName
=
"DeleteSelected"
Visible='<%# Not gridConditions.MasterTableView.IsItemInserted%>'><
asp:Image
ID
=
"Image1"
runat
=
"server"
ImageUrl
=
"~/images/delete_button.gif"
/>Delete</
asp:LinkButton
>
</
td
>
<
td
runat
=
"server"
Visible='<%# gridConditions.MasterTableView.IsItemInserted%>'>
<
asp:LinkButton
ID
=
"btnInsertCondition"
runat
=
"server"
ToolTip
=
"Confirm Add"
CommandName
=
"PerformInsert"
Visible='<%# gridConditions.MasterTableView.IsItemInserted%>'><
asp:Image
ID
=
"imgInsertCondition"
runat
=
"server"
ImageUrl
=
"~/images/updaterecord_button.gif"
/>Confirm Add</
asp:LinkButton
>
<
asp:LinkButton
ID
=
"btnCancelCondition"
runat
=
"server"
ToolTip
=
"Cancel Add"
CommandName
=
"CancelAll"
Visible='<%# gridConditions.EditIndexes.Count > 0 or gridConditions.MasterTableView.IsItemInserted %>'><
asp:Image
ID
=
"imgCancelCondition"
runat
=
"server"
ImageUrl
=
"~/images/cancel_button.gif"
/>Cancel Add</
asp:LinkButton
>
</
td
>
</
tr
>
</
table
>
</
div
>
</
CommandItemTemplate
>
<
Columns
>
<
telerik:GridTemplateColumn
UniqueName
=
"Condition"
HeaderText
=
""
AllowFiltering
=
"false"
ItemStyle-Wrap
=
"false"
>
<
ItemTemplate
>
<
table
>
<
tr
>
<
td
>
<
asp:Label
runat
=
"server"
ID
=
"lblCondition"
Text
=
""
/>
</
td
>
<
td
>
<
asp:Label
runat
=
"server"
ID
=
"lblCondition2"
Text
=
""
/>
</
td
>
<
td
>
<
asp:Label
runat
=
"server"
ID
=
"lblValue"
Text
=
""
/>
</
td
>
</
tr
>
</
table
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
table
>
<
tr
>
<
td
>
<
telerik:RadComboBox
runat
=
"server"
ID
=
"cmboCondition"
AutoPostBack
=
"true"
OnSelectedIndexChanged
=
"cmboCondition_OnSelectedIndexChanged"
>
<
Items
>
<
telerik:RadComboBoxItem
Text
=
"Select One"
Value
=
"0"
/>
<
telerik:RadComboBoxItem
Text
=
"The sender ..."
Value
=
"1"
/>
<
telerik:RadComboBoxItem
Text
=
"The recipient ..."
Value
=
"2"
/>
<
telerik:RadComboBoxItem
Text
=
"The subject or body ..."
Value
=
"3"
/>
<
telerik:RadComboBoxItem
Text
=
"Any attachment ..."
Value
=
"4"
/>
<
telerik:RadComboBoxItem
Text
=
"Any recipient ..."
Value
=
"5"
/>
<
telerik:RadComboBoxItem
Text
=
"A message header ..."
Value
=
"6"
/>
</
Items
>
</
telerik:RadComboBox
>
</
td
>
<
td
>
<
telerik:RadComboBox
runat
=
"server"
ID
=
"cmboCondition2"
/>
</
td
>
<
td
>
This is where the value popup goes
</
td
>
</
tr
>
</
table
>
</
EditItemTemplate
>
</
telerik:GridTemplateColumn
>
</
Columns
>
</
MasterTableView
>
</
telerik:RadGrid
>
Private Sub PopulateConditions(ByVal clientID As String)
Dim cmboCondition2 As RadComboBox = gridConditions.MasterTableView.FindControl(clientID)
For Each item As GridDataItem In gridConditions.EditItems
cmboCondition2 = CType(item("Condition").FindControl("cmboCondition2"), RadComboBox)
Next
If Not cmboCondition2 Is Nothing Then
Dim prmParentID As New SqlParameter("@ParentID", cmboCondition2.SelectedValue)
Dim arrParameters() As SqlParameter = {prmParentID}
Dim dsValues As DataSet = mySQLFunctions.SQLStoredProc("sp_selectDLPConditionsByParentID", arrParameters)
If dsValues.Tables.Count > 0 Then
cmboCondition2.DataSource = dsValues.Tables(0)
cmboCondition2.DataTextField = "Text"
cmboCondition2.DataValueField = "Value"
cmboCondition2.DataBind()
End If
End If
End Sub
Protected Sub gridConditions_NeedDataSource(sender As Object, e As Telerik.Web.UI.GridNeedDataSourceEventArgs) Handles gridConditions.NeedDataSource
gridConditions.DataSource = New Datatable()
End Sub
Protected Sub gridConditions_ItemCreated(ByVal sender As Object, ByVal e As GridItemEventArgs)
If TypeOf e.Item Is GridCommandItem Then
Dim commandItem As GridCommandItem = CType(e.Item, GridCommandItem)
Dim insertButton As LinkButton = CType(commandItem.FindControl("PerformInsertButton"), LinkButton)
Dim cancelButton As LinkButton = CType(commandItem.FindControl("CancelButton"), LinkButton)
insertButton.Visible = False
cancelButton.Visible = False
End If
End Sub
Protected Sub cmboCondition_OnSelectedIndexChanged(ByVal sender As RadComboBox, ByVal e As EventArgs)
PopulateConditions(sender.ClientID & "2")
End Sub