如何在代码后面的面板中添加文字,以便创建一个类似仪表板的布局网格?

时间:2013-04-08 15:26:01

标签: c# asp.net highcharts

目前正在运作:

<div id="DashboardDiv" runat="server">
        <asp:Panel ID="pnlA" runat="server" CssClass="Widget" Width ="900">
            <asp:Literal ID="ltrChart" runat="server"></asp:Literal>
        </asp:Panel>
        <asp:Panel ID="pnlB" runat="server" CssClass="Widget" Width ="900">
            <asp:Literal ID="ltrChart2" runat="server"></asp:Literal>
        </asp:Panel>
</div>

我需要使用文字,以便在代码隐藏中使用dotNet Highcharts。

问题是,我正在创建一个显示多个小部件的仪表板。现在我的测试用例包含1个小部件,但我想最终将其扩展为不确定数量的小部件。

我觉得我需要在运行时根据用户想要的小部件数量创建面板(以及添加到这些面板的文字)。我该怎么做?

我试过这样的事情:

protected static List<Panel> panelList = new List<Panel>();

Panel myChildPanel = new Panel();
myChildPanel.Width = 900;
panelList.Add(myChildPanel);
DashboardDiv.Controls.Add(myChildPanel);

然后将文字添加到此面板列表中,添加到指定的面板:

Literal ltrChart = new Literal();
ltrChart.Text = chart.ToHtmlString();
panelList[counter].Controls.Add(ltrChart);

这感觉就像一种丑陋的做事方式。 基本上我正在寻找这个:

如何在代码隐藏中创建能够包含Literal的面板/区域/区域,以便我可以创建一个充满小部件的仪表板 - 外观?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用asp占位符?我相信他们会帮助你实现你想做的事情。它们允许您在其中放置和控制各种控件,您可以根据特定条件隐藏和显示占位符。例如

<asp:Placeholder runat="server" visible="<%=CMSContext.CurrentUserIsAuthenticated()%> >
<div class="faq-listing itmList faq odd">
<h2 class="heading"> Home</h2>
<asp:Repeater ID="rptSubFaq" runat="server">
</asp:Repeater>
</div>
</asp:Placeholder>