ASPX PostBack UserControl失去价值

时间:2014-03-25 15:06:50

标签: asp.net user-controls postback

我有问题;我像这样在更新面板中创建动态usercontrol; 问题是,当在Page_Load函数中创建Usercontrols时,我从usercontrol的DropDownList中选择值,我单击按钮whis在同一个usercontrol中。

当Page Post返回时,下拉列表丢失了我选择的项目。 但是当我再次从Dropdownlist中选择我的项目时,单击按钮和页面回发后,我的选定项目仍然在下拉列表中正确选择。

你知道为什么我的项目从第一篇文章后退而不是第二次回发?

背后的代码是;

protected void Page_Load(object sender, EventArgs e)
    {
        ShowAgePanel();
    }


private void ShowAgePanel()
    {
        pnlChildAge.Controls.Clear();

    if (ddlChild.SelectedIndex == 0) return;

    for (int i = 0; i < Int32.Parse(ddlChild.SelectedValue); i++)
    {
        age_usercontrol _control = (age_usercontrol)LoadControl("age_usercontrol.ascx");
        _control.SetInfo("Child " + (i + 1).ToString());
        pnlChildAge.Controls.Add(_control);
    }
}

1 个答案:

答案 0 :(得分:0)

是的,我找到了解决方案!

只需在创建新的usercontrol时添加ID(t必须是唯一的),就像这样;

for(int i = 0; i&lt; Int32.Parse(ddlChild.SelectedValue); i ++) {

age_usercontrol _control =(age_usercontrol)LoadControl(“age_usercontrol.ascx”);

_control.ID =“AgeUserControl”+ i.ToString();

_control.SetInfo(“Child”+(i + 1).ToString());  pnlChildAge.Controls.Add(_Control);

}