Asp.net ASPX回发用户控件丢失值

Asp.net ASPX回发用户控件丢失值,asp.net,user-controls,postback,Asp.net,User Controls,Postback,我有个问题;我在更新面板中装入动态用户控件,如下所示; 问题是,当在Page_Load函数中创建Usercontrols时,我从Usercontrols的DropDownList中选择值,然后单击位于同一Usercontrols中的按钮 当页面发回时,我选择的项目的dropdownlist丢失。 但当我再次从Dropdownlist中选择我的项目时,在我点击按钮和页面回发工作后,我选择的项目仍然在Dropdownlist中正确选择 你知道为什么在第一次发回的邮件中,而不是在第二次发回的邮件中,我

我有个问题;我在更新面板中装入动态用户控件,如下所示; 问题是,当在Page_Load函数中创建Usercontrols时,我从Usercontrols的DropDownList中选择值,然后单击位于同一Usercontrols中的按钮

当页面发回时,我选择的项目的dropdownlist丢失。 但当我再次从Dropdownlist中选择我的项目时,在我点击按钮和页面回发工作后,我选择的项目仍然在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);
    }
}
受保护的无效页面加载(对象发送方,事件参数e)
{
ShowAgePanel();
}
私有void ShowAgePanel()
{
pnlChildAge.Controls.Clear();
如果(ddlChild.SelectedIndex==0)返回;
for(inti=0;i
是的,我找到了解决方案

创建新的usercontrol Add ID时只需添加一个ID(必须是唯一的),如下所示

for(inti=0;i age_usercontrol _control=(age_usercontrol)LoadControl(“age_usercontrol.ascx”)

\u control.ID=“AgeUserControl”+i.ToString();

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

}