打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
MsChart中添加、删除Series


 1  <asp:Panel ID="panelch" runat="server" Visible="false" Style="margin-top: 99px; margin-left: 10px;"> 2         <asp:Chart ID="chAnalysis" Width="1025px" runat="server" BackGradientStyle="TopBottom" 3             BackSecondaryColor="White" BackColor="WhiteSmoke" ImageLocation="~/TempImages/ChartPic_#SEQ(300,3)" 4             Visible="False" OnClick="chAnalysis_Click"> 5             <Legends> 6                 <asp:Legend IsTextAutoFit="false" LegendStyle="Column" Docking="Bottom" Name="Default" 7                     BackColor="Transparent" Font="Trebuchet MS, 8pt"> 8                     <Position Height="32" Width="20" X="85" Y="10" /> 9                 </asp:Legend>10             </Legends>11             <Series>12                 <asp:Series Name="ResultData" ChartType="Line">13                 </asp:Series>14                 <asp:Series Name="UpperLimit" ChartType="Line">15                 </asp:Series>16                 <asp:Series Name="LowerLimit" ChartType="Line">17                 </asp:Series>18             </Series>19             <ChartAreas>20                 <asp:ChartArea Name="ChartArea1" BorderColor="64,64,64,64" BackSecondaryColor="White"21                     BackColor="Gainsboro" ShadowColor="Transparent" BackGradientStyle="TopBottom">22                     <Area3DStyle Rotation="0" Perspective="10" Inclination="15" IsRightAngleAxes="false"23                         WallWidth="0" IsClustered="false" />24                     <AxisY>25                         <LabelStyle IntervalType="Number" />26                     </AxisY>27                 </asp:ChartArea>28             </ChartAreas>29         </asp:Chart>30         <br />31         <asp:CheckBoxList ID="chbox" runat="server" Width="200" RepeatDirection="Horizontal"32             Style="float: left; background-color: White;">33             <asp:ListItem Text="结果" Value="0" Selected="True"></asp:ListItem>34             <asp:ListItem Text="上限" Value="1" Selected="True"></asp:ListItem>35             <asp:ListItem Text="下限" Value="2" Selected="True"></asp:ListItem>36         </asp:CheckBoxList>37         虚线38         <asp:TextBox ID="txtLine" runat="server" Width="100"></asp:TextBox>39         <asp:Button ID="btnCh" runat="server" Text="确定" OnClick="btnCh_Click" />40     </asp:Panel>



后台:




 1  #region 删除线或者添加线 2     /// <summary> 3     /// 删除线或者添加线 4     /// </summary> 5     /// <param name="sender"></param> 6     /// <param name="e"></param> 7     protected void btnCh_Click(object sender, EventArgs e) 8     { 9         BindChart();10         this.chAnalysis.Visible = true;11         if (!chbox.Items[0].Selected)12         {13             for (int j = 0; j < this.chAnalysis.Series.Count; j++)14             {15                 if (this.chAnalysis.Series[j].Name == "ResultData")16                 {17                     this.chAnalysis.Series.Remove(this.chAnalysis.Series[j]);18                     break;19                 }20             }21         }22         if (!chbox.Items[1].Selected)23         {24             for (int j = 0; j < this.chAnalysis.Series.Count; j++)25             {26                 if (this.chAnalysis.Series[j].Name == "UpperLimit")27                 {28                     this.chAnalysis.Series.Remove(this.chAnalysis.Series[j]);29                     break;30                 }31             }32         }33         if (!chbox.Items[2].Selected)34         {35             for (int j = 0; j < this.chAnalysis.Series.Count; j++)36             {37                 if (this.chAnalysis.Series[j].Name == "LowerLimit")38                 {39                     this.chAnalysis.Series.Remove(this.chAnalysis.Series[j]);40                     break;41                 }42             }43         }44         BindDotLine();45         46     }47     #endregion48 49     public void BindDotLine()50     {51         double d = 0.0;52         if (!string.IsNullOrEmpty(this.txtLine.Text.Trim()))53         {54             if (!double.TryParse(this.txtLine.Text.Trim(), out d))55             {56                 return;57             }58             if (d > this.chAnalysis.ChartAreas[0].AxisY.Maximum)59             {60                 return;61             }62             if (d < this.chAnalysis.ChartAreas[0].AxisY.Minimum)63             {64                 return;65             }66             Series sline = new Series();67             sline.Name = "xuxian";68             sline.ChartType = SeriesChartType.Line;69             sline.BorderDashStyle = ChartDashStyle.Dot;70             if (ViewState["dt"] == null) { return; }71             DataTable dtResult = (DataTable)ViewState["dt"];72             for (int i = 0; i < dtResult.Rows.Count; i++)73             {74                 sline.Points.AddXY(dtResult.Rows[i]["batch_name"].ToString(), d);75             }76             sline.LegendText = "虚线";77             this.chAnalysis.Series.Add(sline);78         }





 1  public void BindChart() 2     { 3         if (ViewState["dt"] == null) { return; } 4         DataTable dtResult = (DataTable)ViewState["dt"]; 5         this.chAnalysis.Series["ResultData"].PostBackValue = "#AXISLABEL"; 6         this.chAnalysis.Series["ResultData"].LegendText = "结果"; 7         this.chAnalysis.Series["ResultData"].MarkerStyle = MarkerStyle.Square; 8         this.chAnalysis.Series["ResultData"].ToolTip = "批次:\t#VALX\n结果:\t#VALY"; 9         this.chAnalysis.Series["UpperLimit"].MarkerStyle = MarkerStyle.Circle;10         this.chAnalysis.Series["UpperLimit"].LegendText = "上限";11         this.chAnalysis.Series["UpperLimit"].ToolTip = "上限:#VALY";12         this.chAnalysis.Series["LowerLimit"].MarkerStyle = MarkerStyle.Circle;13         this.chAnalysis.Series["LowerLimit"].LegendText = "下限";14         this.chAnalysis.Series["LowerLimit"].ToolTip = "下限:#VALY";15         this.chAnalysis.DataSource = dtResult;16         this.chAnalysis.Series["ResultData"].XValueMember = "batch_name";17         this.chAnalysis.Series["ResultData"].YValueMembers = "RESULTVALUE";18         this.chAnalysis.Series["LowerLimit"].XValueMember = "batch_name";19         this.chAnalysis.Series["LowerLimit"].YValueMembers = "MIN_LIMIT";20         this.chAnalysis.Series["UpperLimit"].XValueMember = "batch_name";21         this.chAnalysis.Series["UpperLimit"].YValueMembers = "MAX_LIMIT";22         this.chAnalysis.DataBind();23         DataTable newdt = CreateWarnTable();24         for (int j = 0; j < dtResult.Rows.Count; j++)25         {26             DataRow dr = newdt.NewRow();27             decimal lowerLimit = decimal.Parse(dtResult.Rows[j]["MIN_LIMIT"].ToString());28             decimal upperLimit = decimal.Parse(dtResult.Rows[j]["MAX_LIMIT"].ToString());29             decimal resultData = decimal.Parse(dtResult.Rows[j]["RESULTVALUE"].ToString());30             dr["MIN_LIMIT"] = lowerLimit;31             dr["MAX_LIMIT"] = upperLimit;32             dr["RESULTVALUE"] = resultData;33             dr["batch_name"] = dtResult.Rows[j]["batch_name"].ToString();34             dr["component_name"] = dtResult.Rows[j]["component_name"].ToString();35             if (resultData > upperLimit)36             {37                 this.chAnalysis.Series["ResultData"].Points[j].MarkerColor = Color.Red;38                 newdt.Rows.Add(dr);39             }40             if (resultData < lowerLimit)41             {42                 this.chAnalysis.Series["ResultData"].Points[j].MarkerColor = Color.Red;43                 newdt.Rows.Add(dr);44             }45         }46         chAnalysis.Titles.Add("检测项目质量回顾分析");47         DataView dv = dtResult.DefaultView;48         dv.Sort = "RESULTVALUE desc";49         double step = Math.Round((double.Parse(dv[0]["RESULTVALUE"].ToString()) - double.Parse(dv[dv.Count - 1]["RESULTVALUE"].ToString())) / 4, 1);50         double min = double.Parse(dv[dv.Count - 1]["RESULTVALUE"].ToString());51         chAnalysis.ChartAreas[0].AxisY.Maximum = (double)(double.Parse(dv[0]["RESULTVALUE"].ToString()) + step);52         chAnalysis.ChartAreas[0].AxisY.Minimum = min - step <= 0 ? 0 : min - step;53         chAnalysis.ChartAreas[0].AxisY.Interval = step;54         chAnalysis.ChartAreas[0].AxisX.Interval = 1;55         this.GridView1.DataSource = newdt;56         this.GridView1.DataBind();57     }



 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
C# Chart控件使用心得
C#使用Log Parser 2.2 + MSchart打造简易Windows日志分析工具
vb.net Mschart控件简单实例
vb.net chart 动态曲线
[转载]技术宅:VB.net Chart控件绘制数据图表
优雅编程之做1个“正常”的程序员
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服