如何以编程方式向 AJAX 选项卡添加新选项卡

本文关键字:选项 新选项 添加 AJAX 编程 方式 | 更新日期: 2023-09-27 18:36:08

我的标签系统正在慢慢进步。我希望能够单击一个按钮并添加新选项卡,同时保留其他选项卡和其中的信息。

我已经设法使用会话来完成它,并且在测试它工作时,但我添加一个新选项卡,这很好,然后下次我单击该按钮时,它不会添加任何其他选项卡。

所以屏幕上已经有一个,代码隐藏添加一个,然后无法再添加。有谁知道我的代码出了什么问题?

namespace Portal
{
    public partial class Tabs : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void btnAddTab_Click(object sender, EventArgs e)
        {
            RenderExisting();
            //ReRender();
            AddTab();
        }
        void RenderExisting()
        {
            Session["tabs"] = TabContainer1;
        }
        void ReRender()
        {
            TabContainer1 = (AjaxControlToolkit.TabContainer)Session["tabs"];
        }
        void AddTab()
        { 
            AjaxControlToolkit.TabContainer tbcDynamic = new AjaxControlToolkit.TabContainer();
            //Load the session tabs
            tbcDynamic = (AjaxControlToolkit.TabContainer)Session["tabs"];
            //Create new tab
            AjaxControlToolkit.TabPanel newtab = new AjaxControlToolkit.TabPanel();
            //string name = "";
            //short idx = 0;
            //newtab.HeaderText = name;
            //newtab.TabIndex = idx;
            //Add new tab to dynamic tabs
            tbcDynamic.Tabs.Add(newtab);
            //Add dynamic tabs to on-screen tabs
            TabContainer1 = tbcDynamic;
            Session.Clear();
        }
    }
}

如何以编程方式向 AJAX 选项卡添加新选项卡

我认为您不需要将其保留在Session中. 只需直接使用TabContainer1

void AddTab()
{ 
    //Create new tab
    AjaxControlToolkit.TabPanel newtab = new AjaxControlToolkit.TabPanel();
    TabContainer1.Tabs.Add(newtab);
}