我正在尝试创建一个动态jquery Tab UI界面,该界面将根据我的数据库值增长。当我发布一个回发时,我松开了我的Panel容器,它打破了我的jquery。我在Page.Init
上添加了控件。下面是代码。无论如何我可以A.将控件移回面板? B.阻止我的面板消失。如果我只有容器,我仍然拥有所有的GUTS,我会很高兴。
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();
}
答案 0 :(得分:0)
您的问题是您需要在每次回发时重新创建并添加动态控件。适合这种情况的地方是Page_Load
事件处理程序。稍后可以添加控件,但不会触发动态控件事件。