一个简单的图表应用程序

<script language="C#" runat=server>

public IEnumerable DataSource;
public string  DataField;
public string  BackColor = "White";
public string  ForeColor = "Blue";

protected override void OnDataBinding( EventArgs e )
{
  IEnumerator objDataEnum;
  object objDataItem;
  string  strUrl = String.Empty;
  int intMaxData = 0;

  if (DataSource != null && DataField != null )
  {
    objDataEnum = DataSource.GetEnumerator();  //返回对 IEnumerator 接口的引用,该接口用于赋予对枚举项的访问权
    while ( objDataEnum.MoveNext() )
    {
      objDataItem = DataBinder.Eval( objDataEnum.Current, DataField );
      if ( IsNumeric(objDataItem) )
      {
        strUrl += "&d=" + objDataItem.ToString();
        //Response.Write("strUrl =    " + strUrl + "<br/>");
        //Response.Write(objDataItem.ToString()+"<br/>");
        if ( (int)objDataItem > intMaxData )
     intMaxData = (int)objDataItem;
      }
    }
  }
  strUrl = "x=" + intMaxData + "&backcolor=" + BackColor + "&forecolor=" + ForeColor + strUrl;
  imgChartImage.ImageUrl = "ChartImage.aspx?" + strUrl;
  Response.Write(imgChartImage.ImageUrl+"<br/>");
}


bool IsNumeric(Object o)
{
  try
  {
    Convert.ToInt32(o);
    return true;
  }
  catch
  {
    return false;
  }
}
 
</Script>

<asp:Image
  ID="imgChartImage"
  Runat="Server" />
 

 

 

<%@ Page ContentType="image/gif" %>
<%@ Import Namespace="System.Drawing" %>
<%@ Import Namespace="System.Drawing.Imaging" %>

<Script Language="C#" Runat="Server">

void Page_Load()
{
  // Calculate Multiplier
  decimal decMaxData = Decimal.Parse( Request.QueryString[ "x" ] );
  decimal decMultiplier = 100 / decMaxData;

  // Retrieve Colors
  string strBackColor = Request.QueryString[ "backcolor" ];
  string strForeColor = Request.QueryString[ "forecolor" ];
  Color objBackColor = ColorTranslator.FromHtml( strBackColor );
  Color objForeColor = ColorTranslator.FromHtml( strForeColor );
  SolidBrush objBrush = new SolidBrush( objForeColor );

  // Build Bar Chart
  string[] arrChartData = Request.QueryString.GetValues( "d" );
  int intWidth = ( arrChartData.Length * 15 ) + 10;
  int intHeight = (int)( decMaxData * decMultiplier ) + 5;
  if (arrChartData != null)
  {
    Bitmap objBitmap = new Bitmap( intWidth, intHeight );
    Graphics objGraphics = Graphics.FromImage( objBitmap );
    objGraphics.Clear( objBackColor );
    for (int intDataIndex = 0; intDataIndex < arrChartData.Length; intDataIndex++)
    {
      int intDataItem = (int)(Int32.Parse(arrChartData[ intDataIndex ]) * decMultiplier);
      objGraphics.FillRectangle(
        objBrush,
        ( intDataIndex * 15 ) + 5,
        intHeight - intDataItem,
        10,
        intHeight );
    }
    objBitmap.Save( Response.OutputStream, ImageFormat.Gif );
  }
}

</Script>

 

 

<%@ Page Language="C#" %>
<%@ Register TagPrefix="myControl" TagName="Chart" SRC="chart.ascx" %>
<%@ Import Namespace="System.Data.SqlClient" %>

<script language="C#" Debug="true" runat=server>

void Page_Load(Object sender , EventArgs e)
{
  SqlConnection conPubs;
  SqlCommand cmdSelect;

  conPubs = new SqlConnection("Server=localhost//tujunyan;Integrated Security=SSPI;database=Pubs" );
  cmdSelect = new SqlCommand( "Select ytd_sales From Titles", conPubs );
  conPubs.Open();
  ctrlChart.DataSource = cmdSelect.ExecuteReader();
  ctrlChart.DataField = "ytd_sales";
  ctrlChart.DataBind();
  conPubs.Close();
}

</Script>

<html>
<head><title>TestChart.aspx</title></head>
<body>

<h2>Year-To-Date Sales</h2>
<myControl:Chart
  id="ctrlChart"
  BackColor="Orange"
  ForeColor="Purple"
  Runat="Server" />

</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值