Hi,
I am using Telerik Rad Ajax Controls 2013 Q1 NET 40 for our website, Technologies, ASP.NET, VB.
I have a .aspx page with a ajaxified RadPanelBar. There is a RadPanelItem in RadPanelBar which contains controls such as texboxes, combo boxes etc. HTML Tables are used to show controls/fields in each panel. The RadPanelBar is ExpandMode="MultipleExpandedItems". I have a RadAJXManager for the panelbar.
The RadPanelItem has a cascading combo, so the first combox "Manufacture" on select populates the second Combo "Model. I have set a OnSelectedIndexChanged="ddManufacturer_SelectedIndexChanged" to call a code behind code, which correctly populates the Model Combo. The problem I have is that once the Model combo has been populated, the PanelBarItem which was expanded seems to collapse after the postback.
Here is a aspx code:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadPanelBar1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadPanelBar1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadPanelBar ID="RadPanelBar1" Runat="server" Skin="Office2007" ExpandMode="MultipleExpandedItems"
style="margin-right: 80px" Width="90%" PersistStateInCookie="true">
<Items>
<telerik:RadPanelItem runat="server" Text="Device Details">
<Items>
<telerik:RadPanelItem Value="DeviceDetails" runat="server" PreventCollapse="false" Text="Device Details">
<ItemTemplate>
<div class="qsf-fb">
<table cellspacing="10">
<tr>
<td>
<asp:Label runat="server" ID="Label20" AssociatedControlID="ddManufacturer">*Manufacturer: </asp:Label>
</td>
<td>
<img alt="Help" src="../Images/help.gif" title="Not Required if Work Authorization = Decommission or TADD4d Exlusion = No,Optional if Work Authorization = Changes with Rename/Changes without Rename." />
<telerik:RadComboBox ID="ddManufacturer" runat="server" DataSourceID="SqlZurichManufacture"
DataTextField="ADCSManufacture" DataValueField="ADCSManufacture"
Skin="Office2007" CausesValidation="False" Width="220px" MarkFirstMatch="True"
OnSelectedIndexChanged="ddManufacturer_SelectedIndexChanged"
AutoPostBack="True" EmptyMessage="Please Select..." EnableScreenBoundaryDetection="False">
</telerik:RadComboBox>
</td>
<td>
<asp:Label runat="server" ID="Label68" Visible="False" AssociatedControlID="ddManufacturer">*Manufacturer: </asp:Label>
</td>
<td>
<telerik:RadTextBox ID="txtManufacture" CssClass="textInput" ValidationGroup="RefValidation" MaxLength="30" Skin="Office2007"
runat="server" Width="220px" Visible="False"></telerik:RadTextBox>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator43"
ControlToValidate="txtManufacture" ErrorMessage="Manufacture is required" Text="*"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Label runat="server" ID="Label27" AssociatedControlID="ddModel">*Model: </asp:Label>
</td>
<td>
<img alt="Help" src="../Images/help.gif" title="Not Required if Work Authorization = Decommission or TADD4d Exlusion = No,Optional if Work Authorization = Changes with Rename/Changes without Rename." />
<telerik:RadComboBox ID="ddModel" runat="server"
DataTextField="ADCSModel" DataValueField="ADCSModel"
Skin="Office2007" CausesValidation="False" Width="220px" MarkFirstMatch="True"
AutoPostBack="True" EmptyMessage="Please Select..." EnableScreenBoundaryDetection="False">
</telerik:RadComboBox>
<%-- <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="ddModel"
Display="Dynamic" ErrorMessage="Sub-Business Unit is Required. Please select from dropdown." Font-Names="Cambria"
Font-Size="small" InitialValue="Please Select...">
</asp:RequiredFieldValidator>--%>
</td>
<td>
<asp:Label runat="server" ID="Label65" Visible="False" AssociatedControlID="ddManufacturer">*Manufacturer: </asp:Label>
</td>
<td>
<telerik:RadTextBox ID="txtModel" CssClass="textInput" ValidationGroup="RefValidation" MaxLength="30" Skin="Office2007"
runat="server" Width="220px" Visible="False"></telerik:RadTextBox>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1"
ControlToValidate="txtModel" ErrorMessage="Model is required" Text="*"></asp:RequiredFieldValidator>
</td>
</tr>
</table>
</div>
</ItemTemplate>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelItem> </Items>
</telerik:RadPanelItem>
</Items>
<ExpandAnimation Type="InOutBounce" />
</telerik:RadPanelBar>
Here is the code behind code the the cascading combo in the RadPanelBarItem, but this does work perfectly:
Protected Sub
ddManufacturer_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs)
Dim editedItem As GridEditableItem = TryCast(TryCast(o, RadComboBox).NamingContainer, GridEditableItem)
' If 'Other' selected from Manufacture then show text box to allow typing in a value
If e.Value = "Other" Then
Dim txtManfu As RadTextBox = DirectCast(RadPanelBar1.FindItemByValue("DeviceDetails").FindControl("txtManufacture"), RadTextBox)
Dim txtModel As RadTextBox = DirectCast(RadPanelBar1.FindItemByValue("DeviceDetails").FindControl("txtModel"), RadTextBox)
txtManfu.Visible = True
txtModel.Visible = True
End If
Dim ddModel As RadComboBox = DirectCast(RadPanelBar1.FindItemByValue("DeviceDetails").FindControl("ddModel"), RadComboBox)
ddModel.Items.Clear()
ddModel.DataSource = LoadModel(e.Value)
ddModel.DataBind()
Dim Panel1 As RadPanelItem = New RadPanelItem
Panel1 = RadPanelBar1.FindItemByValue("DeviceDetails")
'.FindItemByValue("ActivityInformation")
If Panel1.Expanded = False Then
Panel1.Expanded = True
Panel1.Enabled = True
Panel1.Selected = True
End If
End Sub To summarize, the RadPanelbar collapses after a postback. Do I need to ajaxify the controls inside the panelbaritem? I have tried several ideas like setting the PersistStateInCookies to true. Also tried to capture the collapse in the RadPanelBar PreRender to stop the collapse and other ideas from this forum. Any suggestions would be appreciated. Thank you.
I am using Telerik Rad Ajax Controls 2013 Q1 NET 40 for our website, Technologies, ASP.NET, VB.
I have a .aspx page with a ajaxified RadPanelBar. There is a RadPanelItem in RadPanelBar which contains controls such as texboxes, combo boxes etc. HTML Tables are used to show controls/fields in each panel. The RadPanelBar is ExpandMode="MultipleExpandedItems". I have a RadAJXManager for the panelbar.
The RadPanelItem has a cascading combo, so the first combox "Manufacture" on select populates the second Combo "Model. I have set a OnSelectedIndexChanged="ddManufacturer_SelectedIndexChanged" to call a code behind code, which correctly populates the Model Combo. The problem I have is that once the Model combo has been populated, the PanelBarItem which was expanded seems to collapse after the postback.
Here is a aspx code:
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadPanelBar1">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadPanelBar1" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadPanelBar ID="RadPanelBar1" Runat="server" Skin="Office2007" ExpandMode="MultipleExpandedItems"
style="margin-right: 80px" Width="90%" PersistStateInCookie="true">
<Items>
<telerik:RadPanelItem runat="server" Text="Device Details">
<Items>
<telerik:RadPanelItem Value="DeviceDetails" runat="server" PreventCollapse="false" Text="Device Details">
<ItemTemplate>
<div class="qsf-fb">
<table cellspacing="10">
<tr>
<td>
<asp:Label runat="server" ID="Label20" AssociatedControlID="ddManufacturer">*Manufacturer: </asp:Label>
</td>
<td>
<img alt="Help" src="../Images/help.gif" title="Not Required if Work Authorization = Decommission or TADD4d Exlusion = No,Optional if Work Authorization = Changes with Rename/Changes without Rename." />
<telerik:RadComboBox ID="ddManufacturer" runat="server" DataSourceID="SqlZurichManufacture"
DataTextField="ADCSManufacture" DataValueField="ADCSManufacture"
Skin="Office2007" CausesValidation="False" Width="220px" MarkFirstMatch="True"
OnSelectedIndexChanged="ddManufacturer_SelectedIndexChanged"
AutoPostBack="True" EmptyMessage="Please Select..." EnableScreenBoundaryDetection="False">
</telerik:RadComboBox>
</td>
<td>
<asp:Label runat="server" ID="Label68" Visible="False" AssociatedControlID="ddManufacturer">*Manufacturer: </asp:Label>
</td>
<td>
<telerik:RadTextBox ID="txtManufacture" CssClass="textInput" ValidationGroup="RefValidation" MaxLength="30" Skin="Office2007"
runat="server" Width="220px" Visible="False"></telerik:RadTextBox>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator43"
ControlToValidate="txtManufacture" ErrorMessage="Manufacture is required" Text="*"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<asp:Label runat="server" ID="Label27" AssociatedControlID="ddModel">*Model: </asp:Label>
</td>
<td>
<img alt="Help" src="../Images/help.gif" title="Not Required if Work Authorization = Decommission or TADD4d Exlusion = No,Optional if Work Authorization = Changes with Rename/Changes without Rename." />
<telerik:RadComboBox ID="ddModel" runat="server"
DataTextField="ADCSModel" DataValueField="ADCSModel"
Skin="Office2007" CausesValidation="False" Width="220px" MarkFirstMatch="True"
AutoPostBack="True" EmptyMessage="Please Select..." EnableScreenBoundaryDetection="False">
</telerik:RadComboBox>
<%-- <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="ddModel"
Display="Dynamic" ErrorMessage="Sub-Business Unit is Required. Please select from dropdown." Font-Names="Cambria"
Font-Size="small" InitialValue="Please Select...">
</asp:RequiredFieldValidator>--%>
</td>
<td>
<asp:Label runat="server" ID="Label65" Visible="False" AssociatedControlID="ddManufacturer">*Manufacturer: </asp:Label>
</td>
<td>
<telerik:RadTextBox ID="txtModel" CssClass="textInput" ValidationGroup="RefValidation" MaxLength="30" Skin="Office2007"
runat="server" Width="220px" Visible="False"></telerik:RadTextBox>
<asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator1"
ControlToValidate="txtModel" ErrorMessage="Model is required" Text="*"></asp:RequiredFieldValidator>
</td>
</tr>
</table>
</div>
</ItemTemplate>
</telerik:RadPanelItem>
</Items>
</telerik:RadPanelItem> </Items>
</telerik:RadPanelItem>
</Items>
<ExpandAnimation Type="InOutBounce" />
</telerik:RadPanelBar>
Here is the code behind code the the cascading combo in the RadPanelBarItem, but this does work perfectly:
Protected Sub
ddManufacturer_SelectedIndexChanged(ByVal o As Object, ByVal e As Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs)
Dim editedItem As GridEditableItem = TryCast(TryCast(o, RadComboBox).NamingContainer, GridEditableItem)
' If 'Other' selected from Manufacture then show text box to allow typing in a value
If e.Value = "Other" Then
Dim txtManfu As RadTextBox = DirectCast(RadPanelBar1.FindItemByValue("DeviceDetails").FindControl("txtManufacture"), RadTextBox)
Dim txtModel As RadTextBox = DirectCast(RadPanelBar1.FindItemByValue("DeviceDetails").FindControl("txtModel"), RadTextBox)
txtManfu.Visible = True
txtModel.Visible = True
End If
Dim ddModel As RadComboBox = DirectCast(RadPanelBar1.FindItemByValue("DeviceDetails").FindControl("ddModel"), RadComboBox)
ddModel.Items.Clear()
ddModel.DataSource = LoadModel(e.Value)
ddModel.DataBind()
Dim Panel1 As RadPanelItem = New RadPanelItem
Panel1 = RadPanelBar1.FindItemByValue("DeviceDetails")
'.FindItemByValue("ActivityInformation")
If Panel1.Expanded = False Then
Panel1.Expanded = True
Panel1.Enabled = True
Panel1.Selected = True
End If
End Sub To summarize, the RadPanelbar collapses after a postback. Do I need to ajaxify the controls inside the panelbaritem? I have tried several ideas like setting the PersistStateInCookies to true. Also tried to capture the collapse in the RadPanelBar PreRender to stop the collapse and other ideas from this forum. Any suggestions would be appreciated. Thank you.