从回发后的代码生成的丢失面板

本文关键字:代码生成 | 更新日期: 2023-09-27 18:14:35

我正试图使一个动态的jquery选项卡UI界面,将根据我的数据库值增长。当我触发回发时,我失去了面板容器,它破坏了我的jquery。我在Page.Init上添加控件,下面是代码。我能不能把控制键移回到面板上?B.阻止我的面板消失。我仍然有我所有的胆量,如果我只有容器,我会很高兴。

protected void BindTypes()
{
    string getTypes = String.Format("sp_GetVolumeTypes {0}", _siteID);
    DataTable types = SiteFunctions.dt(getTypes);
    for (int i = 0; i < types.Rows.Count; i++)
    {
        HtmlGenericControl li = new HtmlGenericControl("li");
        li.ID = "title-" + i;
        TabTitle.Controls.AddAt(0, li);

        HtmlGenericControl anchor = new HtmlGenericControl("a");
        anchor.Attributes.Add("href", "#MainContent_" + types.Rows[i][0].ToString());
        anchor.ID = "titleLink-" + i;
        anchor.InnerText = types.Rows[i][0].ToString();

        li.Controls.Add(anchor);
        Panel Place = (Panel)tabs.FindControl(types.Rows[i][0].ToString());
        if (Place == null)
        {
            Place = new Panel();
            Place.ID = types.Rows[i][0].ToString();
            Place.CssClass = "tabs-" + i.ToString();
            tabs.Controls.Add(Place);
            ucViewStateManager.AddControl(Place);
        }
        if (!IsPostBack)
        {
            //Hidden Type
            HiddenField hdnType = new HiddenField();
            Place.Controls.Add(hdnType);
            hdnType.ID = "hdn" + types.Rows[i][0].ToString();
            hdnType.Value = types.Rows[i][0].ToString();
            ucViewStateManager.AddControl(hdnType);
            LoadFixRates(types.Rows[i][0].ToString(), Place);
            AddEmptyFixRateBox(types.Rows[i][0].ToString(), Place);
            AddEmptyFixRateBox(types.Rows[i][0].ToString(), Place);
            AddEmptyFixRateBox(types.Rows[i][0].ToString(), Place);
        }
    }
    BindRackPrice();
}

从回发后的代码生成的丢失面板

您的问题是您需要在每次回发时重新创建并添加动态控件到页面。合适的地方是Page_Load事件处理程序。可以稍后添加控件,但之后将不会触发动态控件事件。