我在转发器控件上添加了子控件。那个孩子控制没有解雇事件

时间:2009-06-25 05:29:32

标签: c# .net asp.net-3.5

我已经创建了向导控件,在此我创建了转发器控件。这个转发器控件有三个单选按钮。所有都是动态创建的。我想触发一个单选按钮checkedchange事件。

找到代码:

       **Panel objPanel = (Panel)Wizard1.WizardSteps[Wizard1.ActiveStepIndex].Controls[5];
        Repeater reptrAddQuestion = new Repeater();
        reptrAddQuestion.ID = "reptrAddQuestion" + (count-1);
        string[] obj = new string[2];
        reptrAddQuestion.Visible = true;
        reptrAddQuestion.DataSource = obj;
        reptrAddQuestion.DataBind();
        reptrAddQuestion.EnableViewState = true;
        int controlIdValue = (count - 1) + 1;
        for (int index = 0; index <= reptrAddQuestion.Items.Count - 1; index++)
        {
            RadioButton RdoBtn = new RadioButton();
            RdoBtn.AutoPostBack = true;
            RdoBtn.ID = "RdoBtn" + controlIdValue.ToString();
            RdoBtn.CheckedChanged += new System.EventHandler(RdoBtn_CheckedChanged);
            RdoBtn.EnableViewState = true;
            reptrAddQuestion.Controls.Add(RdoBtn);
            controlIdValue += 1;
        }
        objPanel.Visible = true;
        objPanel.Controls.Add(reptrAddQuestion);**

    public void RdoBtn_CheckedChanged(object sender, EventArgs e)
    {

    }

感谢您的帮助。 问候, Devathidhan.S

2 个答案:

答案 0 :(得分:0)

这取决于您创建控件的Web Page life cycle的哪个部分。

如果您希望控件处理回发和事件,则必须在“OnInit”或“OnPreInit”功能页面中创建它们。

如果您在Page_Load或更高版本上创建这些控件,则为时已晚。控件不会触发事件或保存用户更改,因为此时已经处理了回发信息。

答案 1 :(得分:0)

尝试将复选框的AutoPostBack属性设置为true。如果这不能解决问题,那么这可能是生命周期问题,正如安德鲁所说。