MultiView как CompositeControl - PullRequest
       14

MultiView как CompositeControl

0 голосов
/ 31 января 2012

Я хочу создать серверный элемент управления, который наследуется от System.Web.UI.WebControls.MultiView.

Элемент управления будет содержать коллекцию серверных элементов управления, которые наследуются от System.Web.UI.WebControls.View в свою очередь. Однако, когда я добавляю одно представление в коллекцию View элемента управления, ничто не обрабатывается ...

public class WizardMultiview : System.Web.UI.WebControls.MultiView
{
    // field
    private WizardStart _start;

    override CreateChildControls()
    {
       this._start = new WizardStart(); // custom view
       this._start.ID = "WizardStart1";
       this.Views.Add(this._start);

       this.ActiveViewIndex = 0;
    }

    override Render(HtmlTextWriter writer)
    {
       // NOTE: at this point the control can't render itself.
    }

}

Затем в Default.aspx.cs я делаю:

public void Page_Load(object sender, EventArgs e)
{
    My.Controls.WizardMultiview view = new My.Controls.WizardMultiview();
    this.Panel1.Controls.Add(view); // this is a Panel on the Default.aspx page
}

Пользовательский элемент управления View выглядит следующим образом:

public class WizardStart : System.Web.UI.WebControls.View
{
    override Render(HtmlTextWriter writer)
    {
        writer.WriteLine("I am the starting point");
    }
}

Когда я добавляю этот элемент управления на страницу ASPX, ничего не происходит. Но если я создаю MultiView и добавляю MultiView в коллекцию элементов управления CompositeControl и добавляю представление в этот MultiView, он работает нормально? Я уверен, что то, чего я хочу достичь, возможно?

...