我有一个Web平台,今天我想把一个运维指标放到Web首页上去:
指标的数据是用程序统计好,每天自动放数据库表里的:
web使用的是FineUI的框架和EF6 ORM组件,现在要在FineUI的框架中使用微软提供的chart控件。
需要把chart控件放到ContentPanel内:
<f:ContentPanel ID="ContentPanel4" ShowBorder="false" BodyPadding="20px" ShowHeader="false" AutoScroll="true" runat="server">
<div class="title">
<f:Label ID="Label2" Text="普通的 Label 标签" runat="server"> </f:Label>
</div>
<div >
<asp:Chart ID="Chart1" runat="server" Width="799px">
<Series>
<asp:Series Name="Series1">
<SmartLabelStyle AllowOutsidePlotArea="No" Enabled="False" />
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
</div>
</f:ContentPanel>
配套的服务器端代码如下(注意是放到页面开始的page_load中):
protected void Page_Load(object sender, EventArgs e)
{
PDAEntities db2 = new PDAEntities();
//得到全部的时间点
List<string> lx = new List<string>();
List<string> ly = new List<string>();
var all = from c in db2.JK_ESB_ONEDAY orderby c.mdate ascending select c;
foreach (JK_ESB_ONEDAY t in all)
{
lx.Add(t.mdate.Value.ToShortDateString()); //放入了日期时间点
ly.Add(t.mcount.ToString());
}
Chart1.Series["Series1"].Points.Clear();
Chart1.Series["Series1"].Points.DataBindXY(lx, ly);
Chart1.Titles.Clear();
Chart1.Titles.Add("平台消息计数/天");
就这样,每次登陆web后,就可以在首页看得指标图,在web模式下,它是服务器生成的一张图片。