Ask a Question related to ASP.NET Building Controls, Design and Development.
-
Benton #1
Can't find other Controls from my own Control
Hi there,
I'm creating a "PopUpDatePicker" control, inheriting from Hyperlink. The
goal is to click on that control, select a value from a Calendar and set
this date value to a target control, usually a TextBox.
Problem is on the OnPreRender event, where I try to find the target control.
The FindControl() method always return null there, that is, the specified
Target control is not found on the current page. Here's the event code:
protected override void OnPreRender(EventArgs e)
{
System.Web.UI.Page page = System.Web.HttpContext.Current.Handler as
System.Web.UI.Page;
Control control = page.FindControl(TargetControl);
if (control != null) // null is always returned here :(
this.Attributes.Add("onclick",
string.Format("window.open('DatePicker.aspx?field= {0}', 'calendarPopup',
'width=230,height=209,resizable=no,statusbar=no'); ", control.ClientID));
base.OnPreRender(e);
}
And below is the full code-behind, too. The question is: Why is the
FindControl() method returning null here? The TargetControl property does
have the name of the target control on the page (I can see it with the VS
debugger) so that is not the problem. So what am I missing?
Thanks in advance,
-Benton
Full code-behind below:
using System;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
[assembly: TagPrefix("Tenerife.WebControls", "Tenerife")]
namespace Tenerife.WebControls
{
[ToolboxData("<{0}:PopUpCalendar runat=server></{0}:PopUpCalendar>"),
ToolboxBitmap(typeof(Calendar))]
public class PopUpCalendar : HyperLink
{
public PopUpCalendar()
{
this.NavigateUrl = "javascript:;";
this.ImageUrl = "~/img/SmallCalendar.gif";
this.ToolTip = "Click to select date";
}
protected override void OnPreRender(EventArgs e)
{
System.Web.UI.Page page = System.Web.HttpContext.Current.Handler as
System.Web.UI.Page;
Control control = page.FindControl(TargetControl);
if (control != null) // This is always false :(
this.Attributes.Add("onclick",
string.Format("window.open('DatePicker.aspx?field= {0}', 'calendarPopup',
'width=230,height=209,resizable=no,statusbar=no'); ", control.ClientID));
base.OnPreRender(e);
}
[IDReferenceProperty(typeof(Control))]
[Themeable(false)]
[TypeConverter(typeof(System.Web.UI.WebControls.Val idatedControlConverter))]
[DefaultValue("")]
public string TargetControl
{
get { return ViewState["TargetControl"] == null ? String.Empty :
ViewState["TargetControl"].ToString(); }
set { ViewState["TargetControl"] = value; }
}
}
}
Benton Guest
-
Assembly with USER controls (ascx) cannot find its resouces
Hi, I built an assembly with a set of user controls. This can be done with the Visual Studio 2005 Deployment Project: building and merging for... -
Control.Controls bug? Control's child controls missing at the run time.
Hello, ..NET 1.1/VB.NET: I have a custom web control Public Class DatePicker Inherits Control Implements INamingContainer -
using javascript in User controls to access server controls of the user control
Hello all, I have an asp.net textbox (named txtHidden) and an HtmlButton(named btnAction). I wanted to write a javascript function which will get... -
controls getting values from another control---within a control
I am a bit twisted and need some straightening out. I have a webform with 3 controls on it: a mainHeader, a sectionHeader with a label control... -
Where to find a professional validation sample with server controls
Hello! I need to validate a date of birth, age, credit card, primary language etc. I found a couple example in the books but they are written not... -
Benton #2
Re: Can't find other Controls from my own Control
> I'm creating a "PopUpDatePicker" control, inheriting from Hyperlink. The
Adding something to my own question here. I've modified my OnPreRender event> goal is to click on that control, select a value from a Calendar and set
> this date value to a target control, usually a TextBox.
to look like this:
protected override void OnPreRender(EventArgs e)
{
Control control = Page.FindControl(TargetControl);
this.Attributes.Add("onclick",
string.Format("window.open('DatePicker.aspx?field= {0}', 'calendarPopup',
'width=230,height=209,resizable=no,statusbar=no'); ", control.ClientID));
base.OnPreRender(e);
}
This time I am not casting the current page from the current handler, I'm
just using the Page property the Hyperlink control inherited. However, the
result is just the same: FindControl() always returns null. What am I doing
wrong?
Thanks in advance,
-Benton
Benton Guest
-
Benton #3
Re: Can't find other Controls from my own Control
>> I'm creating a "PopUpDatePicker" control, inheriting from Hyperlink. The
Duh. Solved by using NamingContainer.FindControl() instead of>>> goal is to click on that control, select a value from a Calendar and set
>> this date value to a target control, usually a TextBox.
> This time I am not casting the current page from the current handler, I'm
> just using the Page property the Hyperlink control inherited. However, the
> result is just the same: FindControl() always returns null.
Page.FindControl(). Long live GoogleGroups. :)
Cheers,
-Benton
Benton Guest



Reply With Quote

