C# 使用选项卡容器中的特定标题文本向选项卡面板添加内容

C# 使用选项卡容器中的特定标题文本向选项卡面板添加内容,c#,asp.net,charts,tabs,C#,Asp.net,Charts,Tabs,我可以根据用户从列表框中选择的选项在选项卡容器中动态创建选项卡面板。假设列表框中有4个项目,'Item1,Item2,Item3,Item4'。如果用户选择了所有4项,则将在选项卡容器中创建4个选项卡面板,标题文本为“Item1、Item2、Item3、Item4”,这是列表框中的选项名称 我想将图表等内容添加到具有特定标题文本的选项卡面板。例如,仅向标题文本为“Item1”的选项卡面板添加图表。我如何才能完成此操作 这是我动态创建选项卡面板的代码: Aspx文件: <asp:li

我可以根据用户从列表框中选择的选项在选项卡容器中动态创建选项卡面板。假设列表框中有4个项目,'Item1,Item2,Item3,Item4'。如果用户选择了所有4项,则将在选项卡容器中创建4个选项卡面板,标题文本为“Item1、Item2、Item3、Item4”,这是列表框中的选项名称

我想将图表等内容添加到具有特定标题文本的选项卡面板。例如,仅向标题文本为“Item1”的选项卡面板添加图表。我如何才能完成此操作

这是我动态创建选项卡面板的代码:

Aspx文件:

    <asp:listbox ID="SelectionListBox" runat="server" SelectionMode="Multiple" >
<asp:listitem>Select All</asp:listitem>
<asp:listitem>Item 1</asp:listitem>
<asp:listitem>Item 2</asp:listitem>
<asp:listitem>Item 3</asp:listitem>
<asp:listitem>Item 4</asp:listitem>
</asp:listbox>

   <div>
         <asp:scriptmanager ID="ScriptManager1" runat="server">
        </asp:scriptmanager>
    </div>
    <asp:updatepanel ID="UpdatePanel1" runat="server">
        <contenttemplate>

    <asp:placeholder ID="PlaceHolder1" runat="server"></asp:placeholder>
        </contenttemplate>
    </asp:updatepanel>
问题:如何将图表等内容添加到具有特定标题文本的选项卡面板。例如:仅将图表添加到具有标题文本“Item1”的选项卡面板。
如果有人能在这方面帮助我,我将不胜感激,非常感谢

在aspx.cs文件中,您可以检查所选项目的值,并在此基础上添加图表

    protected void RETRIEVE_BUTTON_Click(object sender, EventArgs e)
    {
        AjaxControlToolkit.TabContainer container = new AjaxControlToolkit.TabContainer();
        container.ID = DateTime.Now.Millisecond.ToString();
        container.EnableViewState = false;
        container.Tabs.Clear();
        container.Height = Unit.Pixel(500);
        container.Width = Unit.Pixel(1200);
        container.Tabs.AddAt(0, GetManualTab());

        foreach (ListItem item in SelectionListBox.Items)
        {
            if (item.Selected)
            {

                Label tabContent = new Label();
                tabContent.ID = "lbl_tab_";
                tabContent.Text += item.Value;



                AjaxControlToolkit.TabPanel panel = new AjaxControlToolkit.TabPanel();
                panel.HeaderText += item.Value;
                container.Tabs.Add(panel);
                panel.Controls.Add(tabContent);

                if (string.Compare(item.Value,"item 1",true) == 0)
                {
                    ChartArea mainArea;
                    Chart mainChart;
                    Series mainSeries;

                    mainChart = new Chart();
                    mainSeries = new Series("MainSeries");
                    mainSeries.Points.AddXY(1, 1);
                    mainSeries.Points.AddXY(2, 2);
                    mainSeries.Points.AddXY(3, 3);
                    mainSeries.Points.AddXY(4, 4);

                    mainChart.Series.Add(mainSeries);
                    mainArea = new ChartArea("MainArea");
                    mainChart.ChartAreas.Add(mainArea);
                    panel.Controls.Add(mainChart);
                }
                if (string.Compare(item.Value,"item 2",true) == 0)
                {
                    ChartArea mainArea;
                    Chart mainChart;
                    Series mainSeries;

                    mainChart = new Chart();
                    mainSeries = new Series("MainSeries");
                    mainSeries.Points.AddXY(2, 4);
                    mainSeries.Points.AddXY(3, 6);
                    mainSeries.Points.AddXY(4, 8);
                    mainSeries.Points.AddXY(6, 1);

                    mainChart.Series.Add(mainSeries);
                    mainArea = new ChartArea("MainArea");
                    mainChart.ChartAreas.Add(mainArea);
                    panel.Controls.Add(mainChart);
                }

            }
        }
        PlaceHolder1.Controls.Add(container);
    }

嗨,塔利布,谢谢你的帮助!但我必须在不同的选项卡面板中添加不同的图表。如果使用If语句,图表将只添加到1个选项卡面板。您知道如何将图表添加到不同的特定选项卡面板吗?您可以使用if-else if语句。。例如,如果(string.Compare(item.value,“item 1”,true)==0{//Add chart1}或者如果(string.Compare(item.value,“item 2”,true)==0{//Add chart2}我必须一次向多个选项卡面板添加不同的图表。。如果我使用这种方法,它只会将图表添加到一个选项卡面板?becos一旦条件为真,它将从那里执行操作,忽略另一个ifelse?我的坏。如果您可以使用多个if语句,请使用else。。。if(string.Compare(item.value,“item 1”,true)==0{//Add chart1}if(string.Compare(item.value,“item 2”,true)==0{//Add chart2}已尝试,但图表仅添加到一个选项卡面板。一旦第一条if语句为true,它将只执行第一条if语句并忽略其余语句。
    protected void RETRIEVE_BUTTON_Click(object sender, EventArgs e)
    {
        AjaxControlToolkit.TabContainer container = new AjaxControlToolkit.TabContainer();
        container.ID = DateTime.Now.Millisecond.ToString();
        container.EnableViewState = false;
        container.Tabs.Clear();
        container.Height = Unit.Pixel(500);
        container.Width = Unit.Pixel(1200);
        container.Tabs.AddAt(0, GetManualTab());

        foreach (ListItem item in SelectionListBox.Items)
        {
            if (item.Selected)
            {

                Label tabContent = new Label();
                tabContent.ID = "lbl_tab_";
                tabContent.Text += item.Value;



                AjaxControlToolkit.TabPanel panel = new AjaxControlToolkit.TabPanel();
                panel.HeaderText += item.Value;
                container.Tabs.Add(panel);
                panel.Controls.Add(tabContent);

                if (string.Compare(item.Value,"item 1",true) == 0)
                {
                    ChartArea mainArea;
                    Chart mainChart;
                    Series mainSeries;

                    mainChart = new Chart();
                    mainSeries = new Series("MainSeries");
                    mainSeries.Points.AddXY(1, 1);
                    mainSeries.Points.AddXY(2, 2);
                    mainSeries.Points.AddXY(3, 3);
                    mainSeries.Points.AddXY(4, 4);

                    mainChart.Series.Add(mainSeries);
                    mainArea = new ChartArea("MainArea");
                    mainChart.ChartAreas.Add(mainArea);
                    panel.Controls.Add(mainChart);
                }
                if (string.Compare(item.Value,"item 2",true) == 0)
                {
                    ChartArea mainArea;
                    Chart mainChart;
                    Series mainSeries;

                    mainChart = new Chart();
                    mainSeries = new Series("MainSeries");
                    mainSeries.Points.AddXY(2, 4);
                    mainSeries.Points.AddXY(3, 6);
                    mainSeries.Points.AddXY(4, 8);
                    mainSeries.Points.AddXY(6, 1);

                    mainChart.Series.Add(mainSeries);
                    mainArea = new ChartArea("MainArea");
                    mainChart.ChartAreas.Add(mainArea);
                    panel.Controls.Add(mainChart);
                }

            }
        }
        PlaceHolder1.Controls.Add(container);
    }