从回发后的代码生成的丢失面板
本文关键字:代码生成 | 更新日期: 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
事件处理程序。可以稍后添加控件,但之后将不会触发动态控件事件。