如何在代码隐藏中向面板添加文字,以创建类似仪表板的布局网格

本文关键字:创建 仪表板 网格 布局 文字 添加 代码 隐藏 | 更新日期: 2023-09-27 18:08:09

目前正在运行:

<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>

我需要使用文字,以便在codebehind中使用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);

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

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

如何在代码隐藏中向面板添加文字,以创建类似仪表板的布局网格

您尝试过使用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>