The below examples show 2 dropdowns Holiday group and Holiday Type.
Based on the selection of Holiday Group ,the holiday type dropdown will be loaded.
The catch here is the Auto Paostback set to "true" and define the event for selectindex change of the first dropdown "OnSelectedIndexChanged="CboHolidayGroup_SelectedIndexChanged""
Replce the "(" and ")" with "<" and ">" respectively
The below code can be used for cascading dropdowns inside a grid view:
Design page
(asp:TemplateField HeaderText="(*) Holiday Group")
(ItemStyle CssClass="TEXTBOX_MEDIUM" /''0
(EditItemTemplate)
(asp:DropDownList ID="CboHolidayGroup" CssClass="DROPDOWN_SMALL" runat="server"
DataTextField="holidaygroup" DataValueField="holiday_group_code_id" AutoPostBack="true"
OnSelectedIndexChanged="CboHolidayGroup_SelectedIndexChanged")
(asp:DropDownList)
(asp:RangeValidator ID="RvHolidayGroup" runat="server" ControlToValidate="CboHolidayGroup"
Display="None" ErrorMessage="Please Select Holiday Group" MaximumValue="1000"
MinimumValue="1" SetFocusOnError="true" Type="Integer" ValidationGroup="VgrpUpdate")(/asp:RangeValidator)
(/EditItemTemplate)
(ItemTemplate)
(asp:Label ID="LblHolidayGroup" CssClass="DROPDOWN_SMALL" runat="server" Text='<%# Eval("holidaygroup") %>')(asp:Label)
(/ItemTemplate)
(FooterTemplate)
(asp:DropDownList ID="CboNewHolidayGroup" CssClass="DROPDOWN_SMALL" runat="server"
DataTextField="holidaygroup" DataValueField="holiday_group_code_id" Enabled="false"
AutoPostBack="true" OnSelectedIndexChanged="CboHolidayGroup_SelectedIndexChanged")
(/asp:DropDownList)
(asp:RangeValidator ID="RvNewHolidayGroup" runat="server" ControlToValidate="CboNewHolidayGroup"
Display="None" ErrorMessage="Please Select Holiday Group" MaximumValue="1000"
MinimumValue="1" SetFocusOnError="true" Type="Integer" ValidationGroup="VgrpInsert")(/asp:RangeValidator)
(/FooterTemplate)
(/asp:TemplateField)
(asp:TemplateField HeaderText="(*) Holiday Type")
(ItemStyle CssClass="DROPDOWN_XLARGE" /)
(EditItemTemplate)
(asp:DropDownList ID="CboHolidayType" CssClass="DROPDOWN_XLARGE" runat="server" DataTextField="holidaytype"
DataValueField="holiday_type_code_id")
(/asp:DropDownList)
(asp:RangeValidator ID="RvHolidayType" runat="server" ControlToValidate="CboHolidayType"
Display="None" ErrorMessage="Please Select Holiday Type" MaximumValue="1000"
MinimumValue="1" SetFocusOnError="true" Type="Integer" ValidationGroup="VgrpUpdate")(/asp:RangeValidator)
(/EditItemTemplate)
(ItemTemplate)
(asp:Label ID="LblHolidayType" CssClass="DROPDOWN_XLARGE" runat="server" Text='<%# Eval("holidaytype") %>')(/asp:Label)
(/ItemTemplate)
(FooterTemplate)
(asp:DropDownList ID="CboNewHolidayType" CssClass="DROPDOWN_XLARGE" runat="server"
DataTextField="holidaytype" DataValueField="holiday_type_code_id" Enabled="false")
(/asp:DropDownList)
(asp:RangeValidator ID="RvNewHolidayType" runat="server" ControlToValidate="CboNewHolidayType"
Display="None" ErrorMessage="Please Select Holiday Type" MaximumValue="1000"
MinimumValue="1" SetFocusOnError="true" Type="Integer" ValidationGroup="VgrpInsert")(/asp:RangeValidator)
(/FooterTemplate)
(/asp:TemplateField)
Code Behind and Design
'>
'>
Region "CboHolidayGroup_SelectedIndexChanged"
''' <summary>
'''
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
Protected Sub CboHolidayGroup_SelectedIndexChanged(ByVal sender As Object, _
ByVal e As EventArgs)
Dim sGroup As String = String.Empty
Dim intGroup As Integer = 0
Dim dtNewHolidayType As DataTable
Dim dtHolidayType As DataTable
Dim objAims As iSymbol = Factory.Factory.CreateSymbolObject()
If DirectCast(sender, DropDownList).SelectedIndex > 0 Then
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("CboHolidayGroup")) Then
sGroup = DirectCast(sender, DropDownList).SelectedItem.Text
intGroup = DirectCast(sender, DropDownList).SelectedValue
If sGroup = "Bank" Then
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("ChkBankHoliday")) Then
DirectCast(DirectCast(sender, DropDownList).Parent.FindControl("ChkBankHoliday"), CheckBox).Checked = True
End If
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("ChkNewBankHoliday")) Then
DirectCast(DirectCast(sender, DropDownList).Parent.FindControl("ChkNewBankHoliday"), CheckBox).Checked = True
End If
Else
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("ChkBankHoliday")) Then
DirectCast(DirectCast(sender, DropDownList).Parent.FindControl("ChkBankHoliday"), CheckBox).Checked = False
End If
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("ChkNewBankHoliday")) Then
DirectCast(DirectCast(sender, DropDownList).Parent.FindControl("ChkNewBankHoliday"), CheckBox).Checked = False
End If
End If
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("CboHolidayType")) Then
Dim CboHolidayType As DropDownList = DirectCast(DirectCast(sender, DropDownList). _
Parent.FindControl("CboHolidayType"), DropDownList)
dtHolidayType = objSymbol.GetSelectedHolTypes(intGroup)
If (dtHolidayType.Rows.Count > 0) Then
CboHolidayType.DataSource = dtHolidayType
CboHolidayType.DataTextField = "holidaytype"
CboHolidayType.DataValueField = "holiday_type_code_id"
CboHolidayType.DataBind()
AddFirstItem(CboHolidayType, _CON_COMBO_FIRST_SELECT)
End If
End If
End If
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("CboNewHolidayGroup")) Then
sGroup = DirectCast(sender, DropDownList).SelectedItem.Text
intGroup = DirectCast(sender, DropDownList).SelectedValue
If sGroup = "Bank" Then
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("ChkNewBankHoliday")) Then
DirectCast(DirectCast(sender, DropDownList).Parent.FindControl("ChkNewBankHoliday"), CheckBox).Checked = True
End If
Else
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("ChkNewBankHoliday")) Then
DirectCast(DirectCast(sender, DropDownList).Parent.FindControl("ChkNewBankHoliday"), CheckBox).Checked = False
End If
End If
If Not IsNothing(DirectCast(sender, DropDownList).Parent.FindControl("CboNewHolidayType")) Then
Dim CboNewHolidayType As DropDownList = DirectCast(DirectCast(sender, DropDownList). _
Parent.FindControl("CboNewHolidayType"), DropDownList)
dtHolidayType = objSymbol.GetSelectedHolTypes(intGroup)
If (dtHolidayType.Rows.Count > 0) Then
CboNewHolidayType.DataSource = dtHolidayType
CboNewHolidayType.DataTextField = "holidaytype"
CboNewHolidayType.DataValueField = "holiday_type_code_id"
CboNewHolidayType.DataBind()
AddFirstItem(CboNewHolidayType, _CON_COMBO_FIRST_SELECT)
End If
End If
End If
End If
End Sub
End Region