I don't know if this has to do with how FindControl works or how scope works. But my base class is having a hard time seeing the fields of child classes. Currently I'm planning have the derived class set a property in the base class, but there are a lot of derived classes, so that isn't a very attractive solution.
public class BasePage:Page
{
public void DoSomethingWithDerivedPageControl()
{
//foo is always null.
Control foo = FindControl("Foo");
}
}
public class DerivedPage : BasePage
{
//In real life, this is the code generated .aspx.designer.cs file.
protected Label Foo;
}