This is a migrated thread and some comments may be shown as answers.

Unable to see Value in usercontrol that is inside radpanelbar

1 Answer 89 Views
PanelBar
This is a migrated thread and some comments may be shown as answers.
Madhu Palakurthi
Top achievements
Rank 1
Madhu Palakurthi asked on 19 Dec 2012, 03:17 PM

Hi,

I have Default.aspx page like this ..

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
 
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>
    <title>ASP.NET PanelBar Demo - Dynamic Creation</title>
</head>
<body>
    <form id="form1" runat="server">
    <telerik:RadScriptManager runat="server" ID="RadScriptManager1" />
    <telerik:RadSkinManager ID="QsfSkinManager" runat="server" ShowChooser="true" />
    <telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All"
        EnableRoundedCorners="false" />
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="RadButton1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadPanelBar1" LoadingPanelID="RadAjaxLoadingPanel1">
                    </telerik:AjaxUpdatedControl>
                </UpdatedControls>
            </telerik:AjaxSetting>         
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
    </telerik:RadAjaxLoadingPanel>
    
    <div>
        <telerik:RadPanelBar runat="server" ID="RadPanelBar1" Height="200" ExpandMode="FullExpandedItem">
        </telerik:RadPanelBar>
    </div>
    <telerik:RadButton ID="RadButton1" runat="server"   Text="RadButton">
    </telerik:RadButton>
    
    </form>
</body>
</html>

Default.aspx.vb :

Imports Telerik.Web.UI
 
Partial Class _Default
    Inherits System.Web.UI.Page
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
 
        End If
    End Sub
 
    Protected Sub RadButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadButton1.Click
        Dim i As Integer = 0
        If RadPanelBar1.Items.Count = 0 Then
            Do While (i < 5)
                Dim dateItem As New RadPanelItem()
                dateItem.Text = "Test" + i.ToString()
                RadPanelBar1.Items.Add(dateItem)
 
                Dim control As New RadPanelItem()
                Dim Panel1 As New Panel()
                Session("testText") = " Label" + i.ToString()
                Dim myControl As Control = LoadControl("TestUC.ascx")
                Panel1.Controls.Add(myControl)
                control.Controls.Add(Panel1)
                dateItem.Items.Add(control)
 
                i = i + 1
            Loop
        End If
    End Sub
End Class

ASCX :

<%@ Control Language="VB" AutoEventWireup="false" CodeFile="TestUC.ascx.vb" Inherits="TestUC" %>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>


ASCX.VB :

Partial Class TestUC
    Inherits System.Web.UI.UserControl
 
    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
 
    End Sub
 
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            Label1.Text = Session("testText")
        End If
 
    End Sub
End Class



When I am click on RadButton1 then I am adding 5 times usercontrol dynamically .If RadPanelBar1.Items.Count = 0 ..So I can able to see label value in 5 usercontrols that added in to radpanelbar.

If I click on RadButton1 2nd time then nothing to do becuase 5 time usercontrol added already in to radpanelbar.. that's  why I put condition like this

If RadPanelBar1.Items.Count = 0
' Add user control here..
End If

Above condition causes nothing loaded in to UI.

Working Image here :  https://docs.google.com/open?id=0B2iTYXKyTlBpZU5ZY1J0SV9FaXc

Not Working Image :  https://docs.google.com/open?id=0B2iTYXKyTlBpTmNGdXNQTjJCVGs


1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 21 Dec 2012, 08:23 AM
Hi,

This happens because dynamically created controls added to other dynamically created controls are lost after a postback. You need to recreate them on every page load. Please take a look into this documentation for more information about adding Templates at Runtime.

Regards,
Princy.
Tags
PanelBar
Asked by
Madhu Palakurthi
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Share this question
or