以下の例は、ホリデーグループとホリデータイプの2つのドロップダウンを示しています。 Holiday Groupの選択に基づいて、ホリデータイプのドロップダウンがロードされます。 ここでキャッチするのは "true"に設定された自動ポストバックで、最初のドロップダウンのselectindex変更のイベントを定義します。OnSelectedIndexChanged="CboHolidayGroup_SelectedIndexChanged"
"("と ")"をそれぞれ "<"と ">"に置き換えます。
次のコードは、グリッドビュー内でドロップダウンをカスケード接続するために使用することができます。
デザイン
(asp:TemplateField HeaderText="(*) Holiday Group")
(ItemStyle CssClass="TEXTBOX_MEDIUM" /)
(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)
コードビハインドページとデザイン
<asp:TemplateField HeaderText="(*) Holiday Group">
<ItemStyle CssClass="TEXTBOX_MEDIUM" />
<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>
。
#Region "CboHolidayGroup_SelectedIndexChanged"
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
ありがとうございました。私は後でこれを実装しようとします。 – RSolberg