我想在c#中的onLoad()重写中从基类访问derive类的控件(主页从一个masterClass派生)

时间:2015-04-22 19:27:30

标签: c# asp.net .net

我定义了多个master,并在Form_Load事件上有一些常用功能。现在我声明一个派生自System.Web.UI.MasterPage的customMasterPage类,并将所有常用功能放入其中。但我想覆盖onPage_Load()并想要打印到Dervived类的控件。

假设我有一个customMaster类

class customMasterClass:System:web.UI.MasterPage
{
    override onLoad()
     {
        base(e)

        //I want to use following child class controls(lblName) here to print
        // lblName.text=""
     }
}

class child1:customMaster
{
     //Controls are..
     //Label:id=lblName;

    Form_load()
    {
        lblName.text="test1 test1"; 
    }
}
class child2:customMaster
{
     //Controls are..
     //Label:id=lblName;

    Form_load()
    {
        lblName.text="test2 test2"; 
    }
}  

如何做到这一点。请给我你的建议

先谢谢

1 个答案:

答案 0 :(得分:0)

基础课程对儿童课程一无所知。话虽这么说,您可以将基类定义为具有可覆盖的方法,派生类可以使用这些方法设置特定的内容,例如:

public class BaseClass
{
    public override OnLoad(object sender, EventArgs e)
    {
        base.OnLoad(e);

        SetLabels();        //This will call the appropriate child class method
    }

    public virtual void SetLabels()
    {

    }
}

public class ChildClass1 : BaseClass
{
    public override void SetLabels()
    {
        //Set the label here
    }
}

public class ChildClass2 : BaseClass
{
    public override void SetLabels()
    {
        //Set the label here
    }
}