对gordview后台绑定数据和添加排序功能
前台代码:
Code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MessageSequence.aspx.cs" Inherits="Web.MessageSequence.MessageSequence" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>文件时序查询</title>
<link href="/style/common.css" rel="Stylesheet" type="text/css" />
<script src="/js/OpenNewWin.js" type="text/javascript"></script>
<script src="/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
<script type="text/css">
.divCss
{
background-color:#eef6fb;
border: solid 1px #a3c7e2;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div style=" height:28px; width:99%; text-align:center;line-height:28px;" class="divCss">文件到报时序统计</div>
<div style=" height:84px; width:99%" class="divCss">
<table id="table01" border="0" cellpadding="0" cellspacing="0" style=" height:100%;width:100%" >
<tr>
<td style="width:15%; text-align:center">台站号<asp:DropDownList ID="ddlStationId" runat="server" ></asp:DropDownList></td>
<td style="width:20%; text-align:center">文件类型<asp:DropDownList ID="ddlMessagetype" runat="server" ></asp:DropDownList></td>
<td style="width:30%; text-align:right" >时间段: <input ID="txtBtime" runat="server" type="text" class="Wdate" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd'})" /></td>
<td style="width:35%"> 至 <input ID="txtEtime" runat="server" type="text" class="Wdate" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd'})" />
<asp:RequiredFieldValidator
ID="RequiredFieldValidator1" ControlToValidate="txtBtime" runat="server" ErrorMessage="填入时间"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator2" ControlToValidate="txtEtime" runat="server" ErrorMessage="填入时间"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td colspan="4" style="text-align:right">
<asp:Button ID="btnQuery" runat="server" Text="查询" CssClass="ButtonStyle" Onclick="btnQuery_Click" Width="100"/>
</td>
</tr>
</table>
</div>
<div id="dImage" style="width:99%; display:none" class="divCss" runat="server">
<div style=" width:600px; overflow:auto; MARGIN-RIGHT:auto; MARGIN-LEFT:auto;" runat="server" id="Div1" >
<asp:Chart ID="chart2" runat="server" BackColor="#FFFFCC" Palette="BrightPastel" BorderWidth = "2">
<Legends>
<asp:Legend IsTextAutoFit="False" Name="Default" BackColor="Transparent" Font="Trebuchet MS, 8.25pt, style=Bold">
</asp:Legend>
</Legends> <%-- 控制小图标的显示格式 --%>
<Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
</div>
</div>
<div style="width:99%" class="divCss">
<asp:GridView ID="GV_GetSequence" runat="server" CssClass="GridViewBorder" AutoGenerateColumns="False" AllowSorting="true" OnSorting="GV_GetSequence_Sorting">
<HeaderStyle CssClass="GridViewHeader" />
<RowStyle CssClass="GridViewRow" />
<EmptyDataTemplate>
<span style="text-align:center; color:Red;">没有任何记录</span>
</EmptyDataTemplate>
</asp:GridView>
</div>
</div>
</form>
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MessageSequence.aspx.cs" Inherits="Web.MessageSequence.MessageSequence" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>文件时序查询</title>
<link href="/style/common.css" rel="Stylesheet" type="text/css" />
<script src="/js/OpenNewWin.js" type="text/javascript"></script>
<script src="/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
<script type="text/css">
.divCss
{
background-color:#eef6fb;
border: solid 1px #a3c7e2;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div style=" height:28px; width:99%; text-align:center;line-height:28px;" class="divCss">文件到报时序统计</div>
<div style=" height:84px; width:99%" class="divCss">
<table id="table01" border="0" cellpadding="0" cellspacing="0" style=" height:100%;width:100%" >
<tr>
<td style="width:15%; text-align:center">台站号<asp:DropDownList ID="ddlStationId" runat="server" ></asp:DropDownList></td>
<td style="width:20%; text-align:center">文件类型<asp:DropDownList ID="ddlMessagetype" runat="server" ></asp:DropDownList></td>
<td style="width:30%; text-align:right" >时间段: <input ID="txtBtime" runat="server" type="text" class="Wdate" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd'})" /></td>
<td style="width:35%"> 至 <input ID="txtEtime" runat="server" type="text" class="Wdate" onfocus="WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd'})" />
<asp:RequiredFieldValidator
ID="RequiredFieldValidator1" ControlToValidate="txtBtime" runat="server" ErrorMessage="填入时间"></asp:RequiredFieldValidator>
<asp:RequiredFieldValidator
ID="RequiredFieldValidator2" ControlToValidate="txtEtime" runat="server" ErrorMessage="填入时间"></asp:RequiredFieldValidator></td>
</tr>
<tr>
<td colspan="4" style="text-align:right">
<asp:Button ID="btnQuery" runat="server" Text="查询" CssClass="ButtonStyle" Onclick="btnQuery_Click" Width="100"/>
</td>
</tr>
</table>
</div>
<div id="dImage" style="width:99%; display:none" class="divCss" runat="server">
<div style=" width:600px; overflow:auto; MARGIN-RIGHT:auto; MARGIN-LEFT:auto;" runat="server" id="Div1" >
<asp:Chart ID="chart2" runat="server" BackColor="#FFFFCC" Palette="BrightPastel" BorderWidth = "2">
<Legends>
<asp:Legend IsTextAutoFit="False" Name="Default" BackColor="Transparent" Font="Trebuchet MS, 8.25pt, style=Bold">
</asp:Legend>
</Legends> <%-- 控制小图标的显示格式 --%>
<Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</ChartAreas>
</asp:Chart>
</div>
</div>
<div style="width:99%" class="divCss">
<asp:GridView ID="GV_GetSequence" runat="server" CssClass="GridViewBorder" AutoGenerateColumns="False" AllowSorting="true" OnSorting="GV_GetSequence_Sorting">
<HeaderStyle CssClass="GridViewHeader" />
<RowStyle CssClass="GridViewRow" />
<EmptyDataTemplate>
<span style="text-align:center; color:Red;">没有任何记录</span>
</EmptyDataTemplate>
</asp:GridView>
</div>
</div>
</form>
</body>
</html>
后台部分代码:
Code
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.DataVisualization.Charting;
using System.Drawing;
namespace Web.MessageSequence
{
public partial class MessageSequence : Lib.Common.BaseClass
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindStationId();
BindMessageType();
//添加排序属性
this.GV_GetSequence.Attributes.Add("SortExpression", "");
this.GV_GetSequence.Attributes.Add("SortDirection", "DESC");
}
}
public override void AccessControl()
{
switch (Power)
{
case AccessPower.Forbid:
break;
case AccessPower.ReadOnly:
break;
case AccessPower.Write:
break;
}
//throw new NotImplementedException();
}
public void BindStationId()
{
Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
DataSet ds = new DataSet();
ds = bOldMessageSequence.GetSingleList("StationId");
ddlStationId.Items.Add(new ListItem("--请选择--",""));
ddlStationId.Items.Add(new ListItem("--全部--",""));
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ddlStationId.Items.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString(), ds.Tables[0].Rows[i][0].ToString()));
}
}
public void BindMessageType()
{
Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
DataSet ds = new DataSet();
ds = bOldMessageSequence.GetSingleList("MessageType");
ddlMessagetype.Items.Add(new ListItem("--请选择--",""));
ddlMessagetype.Items.Add(new ListItem("--全部--",""));
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ddlMessagetype.Items.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString(), ds.Tables[0].Rows[i][0].ToString()));
}
}
public void btnQuery_Click(object sender, EventArgs e)
{
string StationId = ddlStationId.SelectedValue.Trim();
string MessageType = ddlMessagetype.SelectedValue.Trim();
DateTime Btime = DateTime.Parse(txtBtime.Value.Trim());
DateTime Etime = DateTime.Parse(txtEtime.Value.Trim());
//每次查询重新设置,不然有bug
this.GV_GetSequence.Attributes["SortExpression"] = "";
this.GV_GetSequence.Attributes["SortDirection"] = "DESC";
BindGrid(StationId, MessageType, Btime, Etime);
ZuoTu1(StationId, MessageType, Btime, Etime);
}
//作图区
protected void ZuoTu1(string StationId, string MessageType, DateTime Btime, DateTime Etime)
{
//************************************绘图区********************************************
//chart 代表整个图片; legends 代表数据显示标识; Series 图片中的数据集; ChartAreas 代表图片中的绘图区(里面能包含多个Series数据集的显示);
//数据源
Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
DataSet ds = new DataSet();
ds = bOldMessageSequence.GetSequence(StationId, MessageType, Btime, Etime);
int num = ds.Tables[0].Rows.Count;
string head1 = "台站号:" + StationId + " 文件类型:" + MessageType + " 文件到达时序图";
string head2 = "台站号:" + StationId + " 文件到达时序图";
string head3 = " 文件类型:" + MessageType + " 文件到达时序图";
string head4 = "文件到达时序图";
string head;
if (StationId != "" && MessageType != "")
head = head1;
else if (StationId != "" && MessageType == "")
head = head2;
else if (StationId == "" && MessageType != "")
head = head3;
else
head = head4;
//图片属性设置
chart2.Width = (num * 25 + 200) >= 600 ? num * 25 + 200 : 600; //图片宽度
chart2.Height = 400; //图片高度
chart2.BackColor = Color.Azure; //图片背景色
Title t2 = new Title(head); //图片标题
chart2.Titles.Add(t2);
//数据集显示属性设置
//数据集"到报率"显示属性设置
Series series3 = new Series("到报率"); //数据集声明
series3.ChartType = SeriesChartType.Line; //数据显示方式 Line:为折线 Spline:曲线
series3.Color = Color.Green; //线条颜色
series3.BorderWidth = 2; //线条宽度
series3.ShadowOffset = 1; //阴影宽度
series3.IsVisibleInLegend = true; //是否显示数据说明
series3.IsValueShownAsLabel = false; //线条上是否给吃数据的显示
series3.MarkerStyle = MarkerStyle.Circle; //线条上的数据点标志类型
series3.MarkerSize = 8; // 标志的大小
for (int i = 0; i < num; i++) //往数据集添加数据
{
series3.Points.AddXY((DateTime.Parse(ds.Tables[0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["到报率"].ToString().Trim('%'))); //分别往X,Y轴添加数据 (有多中添加方式)
}
chart2.Series.Add(series3); //把数据集添加到chart中
//数据集"迟报率"显示属性设置
Series series2 = new Series("迟报率"); //数据集声明
series2.ChartType = SeriesChartType.Line; //数据显示方式 Line:为折线 Spline:曲线
series2.Color = Color.Yellow; //线条颜色
series2.BorderWidth = 2; //线条宽度
series2.ShadowOffset = 1; //阴影宽度
series2.IsVisibleInLegend = true; //是否显示数据说明
series2.IsValueShownAsLabel = false; //线条上是否给吃数据的显示
series2.MarkerStyle = MarkerStyle.Circle; //线条上的数据点标志类型
series2.MarkerSize = 8; // 标志的大小
for (int i = 0; i < num; i++) //往数据集添加数据
{
series2.Points.AddXY((DateTime.Parse(ds.Tables[0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["迟报率"].ToString().Trim('%'))); //分别往X,Y轴添加数据 (有多中添加方式)
}
chart2.Series.Add(series2); //把数据集添加到chart中
//数据集"未报率"显示属性设置
Series series1 = new Series("未报率"); //数据集声明
series1.ChartType = SeriesChartType.Line; //数据显示方式 Line:为折线 Spline:曲线
series1.Color = Color.Red; //线条颜色
series1.BorderWidth = 2; //线条宽度
series1.ShadowOffset = 1; //阴影宽度
series1.IsVisibleInLegend = true; //是否显示数据说明
series1.IsValueShownAsLabel = false; //线条上是否给吃数据的显示
series1.MarkerStyle = MarkerStyle.Circle; //线条上的数据点标志类型
series1.MarkerSize = 8; // 标志的大小
for (int i = 0; i < num; i++) //往数据集添加数据
{
series1.Points.AddXY((DateTime.Parse(ds.Tables[0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["未报率"].ToString().Trim('%'))); //分别往X,Y轴添加数据 (有多中添加方式)
}
chart2.Series.Add(series1); //把数据集添加到chart中
//作图区的显示属性设置
chart2.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = false;
chart2.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = false;
//背景色设置
chart2.ChartAreas["ChartArea1"].ShadowColor = Color.Transparent;
chart2.ChartAreas["ChartArea1"].BackColor = Color.Azure; //该处设置为了由天蓝到白色的逐渐变化
chart2.ChartAreas["ChartArea1"].BackGradientStyle = GradientStyle.TopBottom;
chart2.ChartAreas["ChartArea1"].BackSecondaryColor = Color.White;
//X,Y坐标线颜色和大小
chart2.ChartAreas["ChartArea1"].AxisX.LineColor = Color.Blue;
chart2.ChartAreas["ChartArea1"].AxisY.LineColor = Color.Blue;
chart2.ChartAreas["ChartArea1"].AxisX.LineWidth = 2;
chart2.ChartAreas["ChartArea1"].AxisY.LineWidth = 2;
chart2.ChartAreas["ChartArea1"].AxisY.Title = "百分比";
//中间X,Y线条的颜色设置
chart2.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor = Color.Blue;
chart2.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineColor = Color.Blue;
//X.Y轴数据显示间隔
chart2.ChartAreas["ChartArea1"].AxisX.Interval = 1; //X轴数据显示间隔
chart2.ChartAreas["ChartArea1"].AxisY.Interval = 10;
//X轴线条显示间隔
chart2.ChartAreas["ChartArea1"].AxisX.MajorGrid.Interval = 1;
//********************************************************************************************
dImage.Style["display"] = "block";
}
//排序事件函数
protected void GV_GetSequence_Sorting(object sender, GridViewSortEventArgs e)
{
// 从事件参数获取排序数据列
string sortExpression = e.SortExpression.ToString();
// 假定为排序方向为“顺序”
string sortDirection = "DESC";
// “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
if (sortExpression == this.GV_GetSequence.Attributes["SortExpression"])
{
//获得下一次的排序状态
sortDirection = (this.GV_GetSequence.Attributes["SortDirection"].ToString() == sortDirection ? "ASC" : "DESC");
}
// 重新设定GridView排序数据列及排序方向
this.GV_GetSequence.Attributes["SortExpression"] = sortExpression;
this.GV_GetSequence.Attributes["SortDirection"] = sortDirection;
string StationId = ddlStationId.SelectedValue.Trim();
string MessageType = ddlMessagetype.SelectedValue.Trim();
DateTime Btime = DateTime.Parse(txtBtime.Value.Trim());
DateTime Etime = DateTime.Parse(txtEtime.Value.Trim());
BindGrid(StationId, MessageType, Btime, Etime);
ZuoTu1(StationId, MessageType, Btime, Etime);
}
//数据绑定
public void BindGrid(string StationId, string MessageType, DateTime Btime, DateTime Etime)
{
Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
DataSet ds = new DataSet();
ds = bOldMessageSequence.GetSequence(StationId, MessageType, Btime, Etime);
GV_GetSequence.Columns.Clear();
// 获取GridView排序数据列及排序方向
string sortExpression = this.GV_GetSequence.Attributes["SortExpression"];
string sortDirection = this.GV_GetSequence.Attributes["SortDirection"];
// 根据GridView排序数据列及排序方向设置显示的默认数据视图
if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
{
ds.Tables[0].DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
}
GV_GetSequence.DataSource = ds.Tables[0];
for (int i = 0; i < ds.Tables[0].Columns.Count; i++) //绑定普通数据列
{
BoundField bfColumn = new BoundField();
bfColumn.DataField = ds.Tables[0].Columns[i].ColumnName;
if (ds.Tables[0].Columns[i].Caption.EndsWith("率"))
{
bfColumn.HeaderText = ds.Tables[0].Columns[i].Caption + "(%)";
}
else
{
bfColumn.HeaderText = ds.Tables[0].Columns[i].Caption;
}
bfColumn.SortExpression = ds.Tables[0].Columns[i].Caption;
GV_GetSequence.Columns.Add(bfColumn);
}
GV_GetSequence.DataBind();
}
}
}
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.DataVisualization.Charting;
using System.Drawing;
namespace Web.MessageSequence
{
public partial class MessageSequence : Lib.Common.BaseClass
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindStationId();
BindMessageType();
//添加排序属性
this.GV_GetSequence.Attributes.Add("SortExpression", "");
this.GV_GetSequence.Attributes.Add("SortDirection", "DESC");
}
}
public override void AccessControl()
{
switch (Power)
{
case AccessPower.Forbid:
break;
case AccessPower.ReadOnly:
break;
case AccessPower.Write:
break;
}
//throw new NotImplementedException();
}
public void BindStationId()
{
Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
DataSet ds = new DataSet();
ds = bOldMessageSequence.GetSingleList("StationId");
ddlStationId.Items.Add(new ListItem("--请选择--",""));
ddlStationId.Items.Add(new ListItem("--全部--",""));
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ddlStationId.Items.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString(), ds.Tables[0].Rows[i][0].ToString()));
}
}
public void BindMessageType()
{
Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
DataSet ds = new DataSet();
ds = bOldMessageSequence.GetSingleList("MessageType");
ddlMessagetype.Items.Add(new ListItem("--请选择--",""));
ddlMessagetype.Items.Add(new ListItem("--全部--",""));
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ddlMessagetype.Items.Add(new ListItem(ds.Tables[0].Rows[i][0].ToString(), ds.Tables[0].Rows[i][0].ToString()));
}
}
public void btnQuery_Click(object sender, EventArgs e)
{
string StationId = ddlStationId.SelectedValue.Trim();
string MessageType = ddlMessagetype.SelectedValue.Trim();
DateTime Btime = DateTime.Parse(txtBtime.Value.Trim());
DateTime Etime = DateTime.Parse(txtEtime.Value.Trim());
//每次查询重新设置,不然有bug
this.GV_GetSequence.Attributes["SortExpression"] = "";
this.GV_GetSequence.Attributes["SortDirection"] = "DESC";
BindGrid(StationId, MessageType, Btime, Etime);
ZuoTu1(StationId, MessageType, Btime, Etime);
}
//作图区
protected void ZuoTu1(string StationId, string MessageType, DateTime Btime, DateTime Etime)
{
//************************************绘图区********************************************
//chart 代表整个图片; legends 代表数据显示标识; Series 图片中的数据集; ChartAreas 代表图片中的绘图区(里面能包含多个Series数据集的显示);
//数据源
Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
DataSet ds = new DataSet();
ds = bOldMessageSequence.GetSequence(StationId, MessageType, Btime, Etime);
int num = ds.Tables[0].Rows.Count;
string head1 = "台站号:" + StationId + " 文件类型:" + MessageType + " 文件到达时序图";
string head2 = "台站号:" + StationId + " 文件到达时序图";
string head3 = " 文件类型:" + MessageType + " 文件到达时序图";
string head4 = "文件到达时序图";
string head;
if (StationId != "" && MessageType != "")
head = head1;
else if (StationId != "" && MessageType == "")
head = head2;
else if (StationId == "" && MessageType != "")
head = head3;
else
head = head4;
//图片属性设置
chart2.Width = (num * 25 + 200) >= 600 ? num * 25 + 200 : 600; //图片宽度
chart2.Height = 400; //图片高度
chart2.BackColor = Color.Azure; //图片背景色
Title t2 = new Title(head); //图片标题
chart2.Titles.Add(t2);
//数据集显示属性设置
//数据集"到报率"显示属性设置
Series series3 = new Series("到报率"); //数据集声明
series3.ChartType = SeriesChartType.Line; //数据显示方式 Line:为折线 Spline:曲线
series3.Color = Color.Green; //线条颜色
series3.BorderWidth = 2; //线条宽度
series3.ShadowOffset = 1; //阴影宽度
series3.IsVisibleInLegend = true; //是否显示数据说明
series3.IsValueShownAsLabel = false; //线条上是否给吃数据的显示
series3.MarkerStyle = MarkerStyle.Circle; //线条上的数据点标志类型
series3.MarkerSize = 8; // 标志的大小
for (int i = 0; i < num; i++) //往数据集添加数据
{
series3.Points.AddXY((DateTime.Parse(ds.Tables[0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["到报率"].ToString().Trim('%'))); //分别往X,Y轴添加数据 (有多中添加方式)
}
chart2.Series.Add(series3); //把数据集添加到chart中
//数据集"迟报率"显示属性设置
Series series2 = new Series("迟报率"); //数据集声明
series2.ChartType = SeriesChartType.Line; //数据显示方式 Line:为折线 Spline:曲线
series2.Color = Color.Yellow; //线条颜色
series2.BorderWidth = 2; //线条宽度
series2.ShadowOffset = 1; //阴影宽度
series2.IsVisibleInLegend = true; //是否显示数据说明
series2.IsValueShownAsLabel = false; //线条上是否给吃数据的显示
series2.MarkerStyle = MarkerStyle.Circle; //线条上的数据点标志类型
series2.MarkerSize = 8; // 标志的大小
for (int i = 0; i < num; i++) //往数据集添加数据
{
series2.Points.AddXY((DateTime.Parse(ds.Tables[0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["迟报率"].ToString().Trim('%'))); //分别往X,Y轴添加数据 (有多中添加方式)
}
chart2.Series.Add(series2); //把数据集添加到chart中
//数据集"未报率"显示属性设置
Series series1 = new Series("未报率"); //数据集声明
series1.ChartType = SeriesChartType.Line; //数据显示方式 Line:为折线 Spline:曲线
series1.Color = Color.Red; //线条颜色
series1.BorderWidth = 2; //线条宽度
series1.ShadowOffset = 1; //阴影宽度
series1.IsVisibleInLegend = true; //是否显示数据说明
series1.IsValueShownAsLabel = false; //线条上是否给吃数据的显示
series1.MarkerStyle = MarkerStyle.Circle; //线条上的数据点标志类型
series1.MarkerSize = 8; // 标志的大小
for (int i = 0; i < num; i++) //往数据集添加数据
{
series1.Points.AddXY((DateTime.Parse(ds.Tables[0].Rows[i]["时间段"].ToString())).Date, Convert.ToSingle(ds.Tables[0].Rows[i]["未报率"].ToString().Trim('%'))); //分别往X,Y轴添加数据 (有多中添加方式)
}
chart2.Series.Add(series1); //把数据集添加到chart中
//作图区的显示属性设置
chart2.ChartAreas["ChartArea1"].AxisX.IsMarginVisible = false;
chart2.ChartAreas["ChartArea1"].Area3DStyle.Enable3D = false;
//背景色设置
chart2.ChartAreas["ChartArea1"].ShadowColor = Color.Transparent;
chart2.ChartAreas["ChartArea1"].BackColor = Color.Azure; //该处设置为了由天蓝到白色的逐渐变化
chart2.ChartAreas["ChartArea1"].BackGradientStyle = GradientStyle.TopBottom;
chart2.ChartAreas["ChartArea1"].BackSecondaryColor = Color.White;
//X,Y坐标线颜色和大小
chart2.ChartAreas["ChartArea1"].AxisX.LineColor = Color.Blue;
chart2.ChartAreas["ChartArea1"].AxisY.LineColor = Color.Blue;
chart2.ChartAreas["ChartArea1"].AxisX.LineWidth = 2;
chart2.ChartAreas["ChartArea1"].AxisY.LineWidth = 2;
chart2.ChartAreas["ChartArea1"].AxisY.Title = "百分比";
//中间X,Y线条的颜色设置
chart2.ChartAreas["ChartArea1"].AxisX.MajorGrid.LineColor = Color.Blue;
chart2.ChartAreas["ChartArea1"].AxisY.MajorGrid.LineColor = Color.Blue;
//X.Y轴数据显示间隔
chart2.ChartAreas["ChartArea1"].AxisX.Interval = 1; //X轴数据显示间隔
chart2.ChartAreas["ChartArea1"].AxisY.Interval = 10;
//X轴线条显示间隔
chart2.ChartAreas["ChartArea1"].AxisX.MajorGrid.Interval = 1;
//********************************************************************************************
dImage.Style["display"] = "block";
}
//排序事件函数
protected void GV_GetSequence_Sorting(object sender, GridViewSortEventArgs e)
{
// 从事件参数获取排序数据列
string sortExpression = e.SortExpression.ToString();
// 假定为排序方向为“顺序”
string sortDirection = "DESC";
// “ASC”与事件参数获取到的排序方向进行比较,进行GridView排序方向参数的修改
if (sortExpression == this.GV_GetSequence.Attributes["SortExpression"])
{
//获得下一次的排序状态
sortDirection = (this.GV_GetSequence.Attributes["SortDirection"].ToString() == sortDirection ? "ASC" : "DESC");
}
// 重新设定GridView排序数据列及排序方向
this.GV_GetSequence.Attributes["SortExpression"] = sortExpression;
this.GV_GetSequence.Attributes["SortDirection"] = sortDirection;
string StationId = ddlStationId.SelectedValue.Trim();
string MessageType = ddlMessagetype.SelectedValue.Trim();
DateTime Btime = DateTime.Parse(txtBtime.Value.Trim());
DateTime Etime = DateTime.Parse(txtEtime.Value.Trim());
BindGrid(StationId, MessageType, Btime, Etime);
ZuoTu1(StationId, MessageType, Btime, Etime);
}
//数据绑定
public void BindGrid(string StationId, string MessageType, DateTime Btime, DateTime Etime)
{
Lib.BLL.OldMessageSequence bOldMessageSequence = new Lib.BLL.OldMessageSequence();
DataSet ds = new DataSet();
ds = bOldMessageSequence.GetSequence(StationId, MessageType, Btime, Etime);
GV_GetSequence.Columns.Clear();
// 获取GridView排序数据列及排序方向
string sortExpression = this.GV_GetSequence.Attributes["SortExpression"];
string sortDirection = this.GV_GetSequence.Attributes["SortDirection"];
// 根据GridView排序数据列及排序方向设置显示的默认数据视图
if ((!string.IsNullOrEmpty(sortExpression)) && (!string.IsNullOrEmpty(sortDirection)))
{
ds.Tables[0].DefaultView.Sort = string.Format("{0} {1}", sortExpression, sortDirection);
}
GV_GetSequence.DataSource = ds.Tables[0];
for (int i = 0; i < ds.Tables[0].Columns.Count; i++) //绑定普通数据列
{
BoundField bfColumn = new BoundField();
bfColumn.DataField = ds.Tables[0].Columns[i].ColumnName;
if (ds.Tables[0].Columns[i].Caption.EndsWith("率"))
{
bfColumn.HeaderText = ds.Tables[0].Columns[i].Caption + "(%)";
}
else
{
bfColumn.HeaderText = ds.Tables[0].Columns[i].Caption;
}
bfColumn.SortExpression = ds.Tables[0].Columns[i].Caption;
GV_GetSequence.Columns.Add(bfColumn);
}
GV_GetSequence.DataBind();
}
}
}