【问题标题】:Custom Server Control with array of check boxes in asp.net doesn't main checkboxs state在 asp.net 中带有复选框数组的自定义服务器控件不是主要的复选框状态
【发布时间】:2011-05-28 21:23:20
【问题描述】:

我创建了一个呈现复选框列表的服务器控件。 问题是当我选中一些复选框和回发表单时,所有复选框都未选中。 这是我的服务器控制类:

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();
    }


}

有什么想法吗?

【问题讨论】:

    标签: asp.net visual-studio-2010 .net-4.0 custom-server-controls


    【解决方案1】:

    也许CreateChildControls 出现在反序列化视图状态的步骤之后。您是否尝试过将Controls.Add(Table) 移动到OnInit?

    您可能会发现MSDN article on ASP.NET page life cycle 很有趣。它只在评论部分提到了 CreateChildControls。

    CreateChildControls documentation page 上的唯一注释警告不要覆盖该方法。如果对您有帮助,请购买Roy Soliver 啤酒:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-31
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      相关资源
      最近更新 更多