[thelist] (asp.net) accessing controls created at runtime.

Tab Alleman talleman at Lumpsum.com
Tue Feb 21 10:56:58 CST 2006


So you're saying I should DIM the control in page_init, but where do I "FindControl()" it?   Still in page_init, or in the submit_click event handler?

> -----Original Message-----
> From: thelist-bounces at lists.evolt.org
> [mailto:thelist-bounces at lists.evolt.org]On Behalf Of James Conley
> Sent: Tuesday, February 21, 2006 11:46 AM
> To: thelist at lists.evolt.org
> Subject: Re: [thelist] (asp.net) accessing controls created 
> at runtime.
> 
> 
> If you want to get events from dynamically created controls then you
> need to dynamically create those controls on post back 
> *before* the post
> back data is "restored" into the controls.
> 
> So - any controls you create dynamically should be done in either
> page_init or page_load. Probably page_init is safer.
> 
> 
> james c
> 
> 
> -----Original Message-----
> From: thelist-bounces at lists.evolt.org
> [mailto:thelist-bounces at lists.evolt.org] On Behalf Of Tab Alleman
> Sent: Tuesday, February 21, 2006 11:26 AM
> To: Evolt Thelist (E-mail)
> Subject: [thelist] (asp.net) accessing controls created at runtime.
> 
> I am creating controls at runtime, and they show up on the page, but
> when the page is submitted, I can't find them.  What am I doing wrong?
> 
> To reduce the code to critical elements, I have a datacell on my .aspx
> page like this:
> 
> <td class='TableData' id="tdAttorney" runat="server" nowrap></td>
> 
> 
> Then in my vb.net code-behind, I populate the cell like this:
> 
> Dim  tdAttorney As System.Web.UI.HtmlControls.HtmlTableCell
> tdAttorney = e.Item.FindControl("tdAttorney")
> 
> 'add textboxes
> Dim tbAttorneyFirstName As New 
> System.Web.UI.HtmlControls.HtmlInputText
> Dim tbAttorneyLastName As New System.Web.UI.HtmlControls.HtmlInputText
>             With tbAttorneyFirstName
>                 .Value = e.Item.DataItem("AttorneyFirstName").ToString
>                 .Size = 20
>                 .ID = "tbAttorneyFirstName"
>                 .MaxLength = 50
>             End With
>             With tbAttorneyLastName
>                 .Value = e.Item.DataItem("AttorneyLastName").ToString
>                 .Size = 20
>                 .ID = "tbAttorneyLastName"
>                 .MaxLength = 50
>             End With
> 
>             With tdAttorney
>                 .Controls.Add(tbAttorneyFirstName)
>                 .Controls.Add(tbAttorneyLastName)
>             End With
> 
> -----------
> 
> Ok, all of this works...the textboxes show up on the page.  In the
> submit_click handler, I've got this:
> 
>                 tdAttorney = itemSI.FindControl("tdAttorney")
> 
>                 tbAttorneyFirstName =
> tdAttorney.FindControl("tbAttorneyFirstName")
>                 tbAttorneyLastName =
> tdAttorney.FindControl("tbAttorneyLastName")
> 
> 
> ----when I stop the page in the debugger, it's finding tdAttorney (the
> datacell), but it's saying it doesn't contain any controls.  The page
> doesn't contain the controls, either.  
> 
> What am I missing?
> -- 
> 
> * * Please support the community that supports you.  * *
> http://evolt.org/help_support_evolt/
> 
> For unsubscribe and other options, including the Tip Harvester and
> archives of thelist go to: http://lists.evolt.org Workers of the Web,
> evolt ! 
> -- 
> 
> * * Please support the community that supports you.  * *
> http://evolt.org/help_support_evolt/
> 
> For unsubscribe and other options, including the Tip Harvester 
> and archives of thelist go to: http://lists.evolt.org 
> Workers of the Web, evolt ! 
> 



More information about the thelist mailing list