all groups > asp.net building controls > november 2005 >
You're in the

asp.net building controls

group:

Dynamically Loading User Control in PlaceHolder



Dynamically Loading User Control in PlaceHolder Ugur Ekinci
11/22/2005 12:00:00 AM
asp.net building controls: Hi ,
I load dynamically a user control in PlaceHolder with the number of fileds
in db.
When loading user control there is no problem, if returning field number is
2 then 2 usr controls load in plcholder.
But problem is that , after page postback plcholder says that I have no
control,

For i As Integer = 0 To plcHolderUsrCont.Controls.Count - 1
kontrol1 = DirectCast(plcHolderUsrCont.Controls(i),
UrunGrupTeknik)
Dim a As String = kontrol1.txtvalue
Next

I added a reference like below , because usr control loading dynamically
<%@ Reference Control = "../kontroller/UrunGrupTeknik.ascx" %>

I defined a protected variable that's type is my usr control
Protected urunGrupTeknikTxtLbl As UrunGrupTeknik = New UrunGrupTeknik

and I load user control like that..

For i As Integer = 0 To tdsTeknikDetay.table1.Rows.Count - 1
thisrowTeknikDetay = tdsTeknikDetay.table1.Rows(i)
findControlPath = Request.ApplicationPath +
"/kontroller/UrunGrupTeknik.ascx"
kontrol1 = Me.LoadControl(findControlPath)
urunGrupTeknikTxtLbl = DirectCast(kontrol1, UrunGrupTeknik)
urunGrupTeknikTxtLbl.lblValue = thisrowTeknikDetay.ACIKLAMA
kontrol1.ID = i
plcHolderUsrCont.Controls.Add(kontrol1)
Next

plcHolder.controls.Count is set to 0 after postback:((
Have you any idea about this problem ?

Thnks....


RE: Dynamically Loading User Control in PlaceHolder DS
11/22/2005 6:41:02 AM
Hi,

I have a asp table in my .aspx page. I dynamically add the control to this
table. The page shows up fine. The control I had have 2 textboxes. Now I am
stuck and not able to access any of these textboxes inside the control I
added. Infact, i am not able to locate this control in the page.

Please help me out.

D. Santhosh

[quoted text, click to view]
Re: Dynamically Loading User Control in PlaceHolder Gokhan Altinoren
11/27/2005 8:37:54 AM
This is a classic issue.

ASP.NET will not persist your dynamically created controls by default, it
will make sure the control-tree at the .aspx will be regenerated but thats
all, no automatic support for your codebehind. They are simply won't be
written to Viewstate tree, and hence corresponding server side control won't
be re-created after a postback.

You may use a helper control like this one instead of the PlaceHolder:
http://www.denisbauer.com/ASPNETControls/DynamicControlsPlaceholder.aspx

Gokhan Altinoren
gokhan[RMV_this][at]altinoren[also_RMV_this][dot]com
http://altinoren.com

[quoted text, click to view]

AddThis Social Bookmark Button