Пользовательский серверный элемент управления с массивом флажков в asp.net не имеет основного состояния флажков - PullRequest
0 голосов
/ 29 мая 2011

Я создал серверный элемент управления, который отображает список флажков. Проблема в том, что, когда я проверяю некоторые из флажков и форму обратной передачи, все флажки отключаются. Вот мой класс управления сервером:

public class WeekControl : WebControl
{
    public bool ShowCheckBoxs { get; set; }

    public WeekControl()
    {
        ShowCheckBoxs = true;
        Table = new Table();
        Table.ID = "table1";
        CheckBoxes = new CheckBox[7, 4];
        Table.CssClass = "weekly";
    }

    protected override void OnInit(EventArgs e)
    {
        for (int i = 0; i < 6; i++)
        {
            TableRow tr = new TableRow();
            Table.Rows.Add(tr);
            for (int j = 0; j < 4; j++)
            {
                TableCell tc = new TableCell();
                tr.Cells.Add(tc);
                if (ShowCheckBoxs)
                {
                    CheckBoxes[i, j] = new CheckBox();
                    CheckBoxes[i, j].ID = "ch" + i.ToString() + j.ToString();
                    tc.Controls.Add(CheckBoxes[i, j]);
                }
            }
        }
    }

    public CheckBox[,] CheckBoxes;
    public Table Table;
    protected override void CreateChildControls()
    {

        Controls.Add(Table);
        ChildControlsCreated = true;
        base.CreateChildControls();
    }


}

Есть идеи?

1 Ответ

1 голос
/ 29 мая 2011

Возможно, CreateChildControls наступает после шага, который десериализует состояние просмотра.Вы пытались переместить Controls.Add(Table) в OnInit?

Возможно, статья MSDN о жизненном цикле страницы ASP.NET будет интересной.Он упоминает CreateChildControls только в разделе комментариев.

Единственный комментарий на странице документации CreateChildControls предостерегает от переопределения метода.Если вам это поможет, купите Рой Соливер пиво :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...