I have a RadComboBox where I select a value which in turn enables a RadButton. I click the RadButton and an asp panel with form controls (textboxes, radio buttons, etc.) appears.
It should be mentioned that this RadComboBox is in another asp panel immediately above the panel with the form controls. These two asp panels are contained within a RadAjaxPanel.
The first time I change the index of the RadComboBox from the default -1 value, the SelectedIndexedChanged fires, the RadButton enables properly, click the button and panel appears with the form controls - no problem. Now the SelectedIndexedChanged event also hides the panel with the form controls - the RadButton click event makes the panel visible.
The next time I change the index of the RadComboBox, the SelectedIndexChanged does not fire - the cursor just hangs in the RadComboBox. Sometimes it will fire but after a long delay. If you change to the -1 default value, it never fires. The SelectedIndexChanged event fires perfectly if the asp panel with the form controls is not visible and all I am doing is toggling whether the RadButton is enabled or not.
I've even run the project in debug and when I change the RadComboBox index, it doesn't even go to the SelectedIndexChanged event at all. As a side note, all of this code is contained in a user control. The two panels that should be looked at are
And here is the code behind:
It should be mentioned that this RadComboBox is in another asp panel immediately above the panel with the form controls. These two asp panels are contained within a RadAjaxPanel.
The first time I change the index of the RadComboBox from the default -1 value, the SelectedIndexedChanged fires, the RadButton enables properly, click the button and panel appears with the form controls - no problem. Now the SelectedIndexedChanged event also hides the panel with the form controls - the RadButton click event makes the panel visible.
The next time I change the index of the RadComboBox, the SelectedIndexChanged does not fire - the cursor just hangs in the RadComboBox. Sometimes it will fire but after a long delay. If you change to the -1 default value, it never fires. The SelectedIndexChanged event fires perfectly if the asp panel with the form controls is not visible and all I am doing is toggling whether the RadButton is enabled or not.
I've even run the project in debug and when I change the RadComboBox index, it doesn't even go to the SelectedIndexChanged event at all. As a side note, all of this code is contained in a user control. The two panels that should be looked at are
pnlAddLockSeries and pnlAddLockSeriesFormFields - not through doing all the add and edit functions of the code yet but wanted to get through this problem first. The ascx file is show first followed by the code behind.<%@ Control Language="VB" AutoEventWireup="false" CodeFile="SeriesLockCRUD.ascx.vb" Inherits="EK8734MQPV3091_Controls_SeriesLockCRUD" %><div style="text-align:center"><asp:ValidationSummary ID="ValidationSummary1" ValidationGroup="AddLockSeries" ShowMessageBox="true" ShowSummary="false" runat="server" /><asp:ValidationSummary ID="ValidationSummary2" ValidationGroup="EditLockSeries" ShowMessageBox="true" ShowSummary="false" runat="server" /></div><telerik:RadToolTipManager ID="RadToolTipManager1" Width="200px" AutoCloseDelay="20000" HideDelay="3000" Skin="Sunset" runat="server" > <TargetControls> <telerik:ToolTipTargetControl TargetControlID="imgHelpAddLockSeries" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpEditLockSeries" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpSeriesPrefix" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpSeriesStart" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpSeriesEnd" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpSeriesSuffix" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpSeriesLeadingZeros" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpTwoCountSeries" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpTwoCountSeriesFirstCountStart" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpTwoCountSeriesFirstCountEnd" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpTwoCountSeriesSecondCountStart" IsClientID="true" /> <telerik:ToolTipTargetControl TargetControlID="imgHelpTwoCountSeriesSecondCountEnd" IsClientID="true" /> </TargetControls></telerik:RadToolTipManager><telerik:RadAjaxPanel ID="rapSeriesLock" runat="server"><table border="0" cellpadding="2" cellspacing="0" width="100%"> <tr> <td class="YellowLargeBold" align="center" style="width:100%"> Lock Series Add / Edit </td> </tr> <tr> <td class="BlackSmall" valign="top" > <br /> <table style="border: 1px solid #F59F1A; margin-left:auto; margin-right:auto" cellpadding="1" cellspacing="0" width="40%"> <tr> <td class="rightborders" style="text-align:center"> <asp:LinkButton ID="lbAddLockSeries" CssClass="textGreensmall" OnClick="lbAddLockSeries_OnClick" Text="Add Lock Series" runat="server" /> </td> <td class="rightborders" style="text-align:center"> <asp:LinkButton ID="lbEditLockSeries" CssClass="textsmall" OnClick="lbEditLockSeries_OnClick" Text="Edit Lock Series" runat="server" /> </td> </tr> </table> </td> </tr></table><asp:Panel ID="pnlAddLockSeries" runat="server" ><br /><table cellpadding="2" cellspacing="0" width="70%" style="border-width:0px; margin-left:0px; margin-right:auto" class="BlackSmall"> <tr> <td class="GreenSmallBold" valign="top"> Add Lock Series <img src="../Images/help_icon.gif" id="imgHelpAddLockSeries" alt="" style="vertical-align:bottom" title="Select a Manufacturer from the Combo Box, click the ''Build New Lock Series'' button and the form fields will appear to add the Lock Series" /> <asp:LinkButton ID="lbCloseAddLockSeries" CssClass="textsmall" Text="Close Add Lock Series Section" OnClick="lbCloseAddLockSeries_OnClick" runat="server" /><br /><br /> </td> <td class="GreenSmallBold" valign="top" style="width:300px"> <telerik:RadComboBox ID="rcbManfAddLockSeries" Label="Manufacturer: " CssClass="BlackSmall" Width="200px" AppendDataBoundItems="true" AutoPostBack="true" OnSelectedIndexChanged="rcbManfAddLockSeries_SelectedIndexChanged" DataValueField="ManufacturerID" DataTextField="Manufacturer" runat="server" /> </td> <td class="GreenSmallBold" valign="top"> <telerik:RadButton ID="rbBuildNewLockSeries" OnClick="rbBuildNewLockSeries_OnClick" AutoPostBack="true" runat="server" Text="Build New Lock Series" /> </td> </tr></table></asp:Panel><asp:Panel ID="pnlAddLockSeriesFormFields" runat="server"><table class="bottomborders" style="border: 1px solid #F59F1A" cellpadding="2" cellspacing="0" width="100%"> <tr> <td align="right" style="width:170px"> Series Prefix: </td> <td class="rightborders" style="width:140px"> <telerik:RadTextBox ID="txtSeriesPrefix" MaxLength="10" Width="60px" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpSeriesPrefix" alt="" style="vertical-align:bottom" title="This is the one or more letter prefix such as ''FR'' for the Steelcase FR301 - FR801 series. VERY IMPORTANT: We also use this series prefix for two count series such as Chicago Locks 1X1 - 7X6 Series where the letter ''X'' is considered the series prefix" /> </td> <td align="right" style="width:200px"> Series Number Start: </td> <td class="rightborders" style="width:130px"> <telerik:RadTextBox ID="txtSeriesStart" MaxLength="6" Width="40px" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpSeriesStart" alt="" style="vertical-align:bottom" title="This is the numerical start of a series such ''301'' for the Steelcase series FR301 - FR801. In the case where there are leading zeros, just put the actual number start. As an example, for the Haworth SL001 - SL300 series, just put the number ''1'' in the blank even though there are two leading zeros - more on leading zeros later." /> <asp:CompareValidator ID="cvtxtSeriesStart" ControlToValidate="txtSeriesStart" Operator="DataTypeCheck" Type="Integer" ValidationGroup="AddLockSeries" Display="None" runat="server" ErrorMessage="You must use whole numbers for the series start." /> <asp:RequiredFieldValidator ID="reqtxtSeriesStart" ControlToValidate="txtSeriesStart" runat="server" Display="None" ErrorMessage="You must enter a Lock Series Start Number and it must be in whole numbers." /> </td> <td align="right" style="width:180px"> Series Number End: </td> <td class="rightborders" style="width:130px"> <telerik:RadTextBox ID="txtSeriesEnd" MaxLength="6" Width="40px" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpSeriesEnd" alt="" style="vertical-align:bottom" title="This is the numerical end of a series such ''801'' for the Steelcase series FR301 - FR801. If there is no series end such as American Specialties E114, just leave a number zero in the form blank." /> <asp:CompareValidator ID="cvtxtSeriesEnd" ControlToValidate="txtSeriesEnd" Operator="DataTypeCheck" Type="Integer" ValidationGroup="AddLockSeries" Display="None" runat="server" ErrorMessage="You must use whole numbers for the series end." /> </td> <td align="right" style="width:170px;"> Series Suffix: </td> <td class="rightborders" style="width:150px"> <telerik:RadTextBox ID="txtSeriesSuffix" MaxLength="10" Width="60px" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpSeriesSuffix" alt="" style="vertical-align:bottom" title="This is the one or more letter suffix such as ''XA'' for the Chicago Lock 1001XA-3000XA series. It also applies to ''New Style'' and ''Old Style'' such as Kimball in which case there is a space and then [new style] or a space and then [old style]." /> </td> <td align="right" style="width:160px"> Series Start <br />Leading Zeros: </td> <td style="width:150px"> <telerik:RadTextBox ID="txtSeriesLeadingZeros" MaxLength="6" Width="40px" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpSeriesLeadingZeros" alt="" style="vertical-align:bottom" title="This is the number of leading zeros for the START of a particular series. An example would be the Eagle series CC001 - CC240 where there are TWO leading zeros at the start of the series." /> <asp:CompareValidator ID="cvtxtSeriesLeadingZeros" ControlToValidate="txtSeriesLeadingZeros" Operator="DataTypeCheck" Type="Integer" ValidationGroup="AddLockSeries" Display="None" runat="server" ErrorMessage="You must use whole numbers for the series leading zeros. If there are no leading zeros, leave the number zero in the form blank." /> </td> </tr> <tr> <td align="right"> Two Count Series: </td> <td class="rightborders"> <asp:RadioButton ID="TwoCountSeriesYes" GroupName="TwoCountSeries" Text="Yes" runat="server" /><asp:RadioButton ID="TwoCountSeriesNo" GroupName="TwoCountSeries" Text="No" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpTwoCountSeries" alt="" style="vertical-align:bottom" title="This is a true/false for two count series such as Chicago Locks 1X1 - 7X6 Series - i.e. it counts from 1X1 to 1X6, then 2X1 to 2X6 and so on. Most of the time this will be 'False' or 'No' and so 'No' is checked by default. If 'No' is checked, you do not have to fill out the remaining Two Count form blanks (leave the default zeros there) but do complete the rest of the form." /> </td> <td align="right"> Two Count Series <br />1st Number Start: </td> <td class="rightborders"> <telerik:RadTextBox ID="txtTwoCountSeriesFirstCountStart" MaxLength="6" Width="40px" Text="0" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpTwoCountSeriesFirstCountStart" alt="" style="vertical-align:bottom" title="Again with Chicago Locks 1X1 - 7X6 Series, this would be the FIRST number 1 of '1X1'" /> <asp:CompareValidator ID="cvtxtTwoCountSeriesFirstCountStart" ControlToValidate="txtTwoCountSeriesFirstCountStart" Operator="DataTypeCheck" Type="Integer" ValidationGroup="AddLockSeries" Display="None" runat="server" ErrorMessage="You must use whole numbers for the Two Count Series 1st Number Start." /> </td> <td align="right"> Two Count Series <br />1st Number End: </td> <td class="rightborders"> <telerik:RadTextBox ID="txtTwoCountSeriesFirstCountEnd" MaxLength="6" Width="40px" Text="0" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpTwoCountSeriesFirstCountEnd" alt="" style="vertical-align:bottom" title="Again with Chicago Locks 1X1 - 7X6 Series, this would be the SECOND number 1 of '1X1'" /> <asp:CompareValidator ID="cvtxtTwoCountSeriesFirstCountEnd" ControlToValidate="txtTwoCountSeriesFirstCountEnd" Operator="DataTypeCheck" Type="Integer" ValidationGroup="AddLockSeries" Display="None" runat="server" ErrorMessage="You must use whole numbers for the Two Count Series 1st Number Start." /> </td> <td align="right"> Two Count Series <br />2nd Number Start: </td> <td class="rightborders"> <telerik:RadTextBox ID="txtTwoCountSeriesSecondCountStart" MaxLength="6" Width="40px" Text="0" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpTwoCountSeriesSecondCountStart" alt="" style="vertical-align:bottom" title="Again with Chicago Locks 1X1 - 7X6 Series, this would be the FIRST number 7 of '7X6'" /> <asp:CompareValidator ID="cvtxtTwoCountSeriesSecondCountStart" ControlToValidate="txtTwoCountSeriesSecondCountStart" Operator="DataTypeCheck" Type="Integer" ValidationGroup="AddLockSeries" Display="None" runat="server" ErrorMessage="You must use whole numbers for the Two Count Series 2nd Number Start." /> </td> <td align="right"> Two Count Series <br />2nd Number End: </td> <td class="rightborders"> <telerik:RadTextBox ID="txtTwoCountSeriesSecondCountEnd" MaxLength="6" Width="40px" Text="0" runat="server" /> <img src="../Images/help_icon.gif" id="imgHelpTwoCountSeriesSecondCountEnd" alt="" style="vertical-align:bottom" title="Again with Chicago Locks 1X1 - 7X6 Series, this would be the SECOND number 6 of '7X6'" /> <asp:CompareValidator ID="cvtxtTwoCountSeriesSecondCountEnd" ControlToValidate="txtTwoCountSeriesSecondCountEnd" Operator="DataTypeCheck" Type="Integer" ValidationGroup="AddLockSeries" Display="None" runat="server" ErrorMessage="You must use whole numbers for the Two Count Series 2nd Number End." /> </td> </tr> <tr> <td align="center" valign="middle" colspan="10" style="border-bottom-width:0px; height:40px"> <telerik:RadButton ID="rbnSubmitNewLockSeries" OnClick="rbnSubmitNewLockSeries_OnClick" CausesValidation="true" ValidationGroup="AddLockSeries" Width="200px" Height="30px" runat="server" Text="Add New Lock Series" /> <asp:Label ID="lblAddLockSeriesSuccess" Visible="false" runat="server" /><asp:Timer ID="tmAddLockSeriesSuccess" Interval="10000" OnTick="tmAddLockSeriesSuccess_OnTick" runat="server" /> </td> </tr></table></asp:Panel><asp:Panel ID="pnlEditLockSeries" runat="server" ><br /><table cellpadding="2" cellspacing="0" width="90%" style="border-width:0px; margin-left:0px; margin-right:auto" class="BlackSmall"> <tr> <td class="RedSmallBold"> Edit Lock Series <img src="../Images/help_icon.gif" id="imgHelpEditLockSeries" alt="" style="vertical-align:bottom" title="Select a Manufacturer from the first combo box and then select a series from the second combo box and the form fields will appear for editing purposes" /> <asp:LinkButton ID="lbCloseEditLockSeries" CssClass="textsmall" Text="Close Edit Lock Series Section" OnClick="lbCloseEditLockSeries_OnClick" runat="server" /><br /><br /> </td> <td class="GreenSmallBold" valign="top" style="width:300px"> <telerik:RadComboBox ID="rcbManfEditLockSeries" Label="Manufacturer: " CssClass="BlackSmall" Width="200px" AppendDataBoundItems="true" AutoPostBack="true" OnSelectedIndexChanged="rcbManfEditLockSeries_SelectedIndexChanged" DataValueField="ManufacturerID" DataTextField="Manufacturer" runat="server" /> </td> <td class="GreenSmallBold" valign="top" style="width:300px"> <telerik:RadComboBox ID="rcbEditLockSeries" Label="LockSeries: " CssClass="BlackSmall" Width="200px" AppendDataBoundItems="true" AutoPostBack="true" OnSelectedIndexChanged="rcbEditLockSeries_SelectedIndexChanged" DataValueField="SeriesLockID" DataTextField="Series" runat="server" /> </td> <td class="GreenSmallBold" valign="top"> <telerik:RadButton ID="rbEditExistingLockSeries" OnClick="rbEditExistingLockSeries_OnClick" AutoPostBack="true" runat="server" Text="Edit Lock Series" /> </td> </tr></table></asp:Panel><asp:Panel ID="pnlEditLockSeriesFormFields" runat="server"></asp:Panel></telerik:RadAjaxPanel>And here is the code behind:
Imports DALImports SystemImports System.IOImports System.DataImports System.Data.SqlClientImports System.Web.ConfigurationImports System.Web.UI.WebControlsImports System.Collections.GenericImports Telerik.Web.UIImports Microsoft.VisualBasicPartial Class EK8734MQPV3091_Controls_SeriesLockCRUD Inherits System.Web.UI.UserControl Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack And Not Page.IsCallback Then pnlAddLockSeries.Visible = False pnlEditLockSeries.Visible = False rbBuildNewLockSeries.Enabled = False rcbEditLockSeries.Enabled = False rbEditExistingLockSeries.Enabled = False pnlAddLockSeriesFormFields.Visible = False pnlEditLockSeriesFormFields.Visible = False Dim ManufacturersList As List(Of Manufacturer) ManufacturersList = Manufacturer.GetAllManufacturers If Not ManufacturersList Is Nothing And ManufacturersList.Count > 0 Then rcbManfAddLockSeries.Items.Insert(0, New RadComboBoxItem("- Select a Manufacturer -", "-1")) rcbManfEditLockSeries.Items.Insert(0, New RadComboBoxItem("- Select a Manufacturer -", "-1")) rcbManfAddLockSeries.DataSource = ManufacturersList rcbManfEditLockSeries.DataSource = ManufacturersList rcbManfAddLockSeries.DataBind() rcbManfEditLockSeries.DataBind() End If End If End Sub Public Sub rcbManfAddLockSeries_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) Handles rcbManfAddLockSeries.SelectedIndexChanged pnlAddLockSeriesFormFields.Visible = False If rcbManfAddLockSeries.SelectedValue <> "-1" Then rbBuildNewLockSeries.Enabled = True Exit Sub Else rbBuildNewLockSeries.Enabled = False Exit Sub End If End Sub Protected Sub rbBuildNewLockSeries_OnClick(ByVal sender As Object, ByVal e As EventArgs) pnlAddLockSeriesFormFields.Visible = True ' Intitialize text box values where necessary txtSeriesEnd.Text = "0" txtSeriesLeadingZeros.Text = "0" TwoCountSeriesNo.Checked = True txtTwoCountSeriesFirstCountStart.Text = "0" txtTwoCountSeriesFirstCountEnd.Text = "0" txtTwoCountSeriesSecondCountStart.Text = "0" txtTwoCountSeriesSecondCountEnd.Text = "0" Exit Sub End Sub Protected Sub rbnSubmitNewLockSeries_OnClick(ByVal sender As Object, ByVal e As EventArgs) If Page.IsValid Then End If End Sub Public Sub rcbManfEditLockSeries_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) pnlEditLockSeriesFormFields.Visible = False If rcbManfEditLockSeries.SelectedValue <> "-1" Then rcbEditLockSeries.Items.Clear() rcbEditLockSeries.Enabled = True Dim ManfLockSeries As List(Of SeriesLock) ManfLockSeries = SeriesLock.GetAllSeriesLocksByManufacturerID(CInt(rcbManfEditLockSeries.SelectedValue)) If Not ManfLockSeries Is Nothing And ManfLockSeries.Count > 0 Then rcbEditLockSeries.Items.Insert(0, New RadComboBoxItem("- Select a Lock Series -", "-1")) rcbEditLockSeries.DataSource = ManfLockSeries rcbEditLockSeries.DataBind() rcbEditLockSeries.Focus() Else rcbEditLockSeries.Enabled = False rbEditExistingLockSeries.Enabled = False End If Else rcbEditLockSeries.Items.Clear() rcbEditLockSeries.Enabled = False rbEditExistingLockSeries.Enabled = False End If End Sub Public Sub rcbEditLockSeries_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs) If rcbEditLockSeries.SelectedValue <> "-1" Then rbEditExistingLockSeries.Enabled = True Else rbEditExistingLockSeries.Enabled = False End If End Sub Protected Sub rbEditExistingLockSeries_OnClick(ByVal sender As Object, ByVal e As EventArgs) 'ClearFormControls(pnlEditLockSeriesFormFields) pnlEditLockSeriesFormFields.Visible = True ' will have to initialize a lot of fields here. End Sub Protected Sub tmAddLockSeriesSuccess_OnTick(ByVal sender As Object, ByVal e As System.EventArgs) lblAddLockSeriesSuccess.Visible = False tmAddLockSeriesSuccess.Enabled = False Exit Sub End Sub Protected Sub lbAddLockSeries_OnClick(ByVal sender As Object, ByVal e As EventArgs) Handles lbAddLockSeries.Click pnlAddLockSeries.Visible = True End Sub Protected Sub lbEditLockSeries_OnClick(ByVal sender As Object, ByVal e As EventArgs) Handles lbEditLockSeries.Click pnlEditLockSeries.Visible = True End Sub Protected Sub lbCloseAddLockSeries_OnClick(ByVal sender As Object, ByVal e As EventArgs) Handles lbCloseAddLockSeries.Click pnlAddLockSeries.Visible = False pnlAddLockSeriesFormFields.Visible = False End Sub Protected Sub lbCloseEditLockSeries_OnClick(ByVal sender As Object, ByVal e As EventArgs) Handles lbCloseEditLockSeries.Click pnlEditLockSeries.Visible = False pnlEditLockSeriesFormFields.Visible = False End SubEnd Class