从一个舆论调查的制作谈面向对象的编程思路(五)
file : vote.aspx
<%@ Page language=\"c#\" Codebehind=\"vote.cs\" AutoEventWireup=\"false\" Inherits=\"Football.vote\" %>
<html>
<head>
<title>532.com.cn --- 舆论调查 ---</title>
<link rel=\"stylesheet\" href=\"style/style.css\" type=\"text/css\">
</head>
<body>
<form method=\"post\" runat=\"server\">
<table width=400 height=300 align=center>
<tr>
<td class=cn valign=top align=center><b>调查题目:
<asp:label id=\"lblSurveyTitle\" runat=Server class=cn></asp:label>
</td>
</tr>
<tr>
<td alin=center>
<asp:image id=\"imgSurvey\" runat=Server></asp:image>
</td>
</tr>
<tr>
<td align=center>
<input type=button onclick=\"window.close();\" value=\"关闭此窗口\">
</td>
</tr>
</table>
</form>
</body>
</html>
file: vote.cs
namespace Football
{
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
/// <summary>
/// Summary description for vote.
/// </summary>
public class vote : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Image imgSurvey;
protected System.Web.UI.WebControls.Label lblSurveyTitle;
private string m_strSurveyID ;
private int m_intVoteID ;
public vote()
{
Page.Init += new System.EventHandler(Page_Init);
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//
// Evals true first time browser hits the page
//
}
}
protected void Page_Init(object sender, EventArgs e)
{
//
// CODEGEN: This call is required by the ASP+ Windows Form Designer.
//
InitializeComponent();
Init() ;
}
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler (this.Page_Load);
}
private void Init()
{
m_strSurveyID = Request[\"surveyid\"].ToString() ;
FootballSurvey mySurvey = new FootballSurvey() ;
try
{
m_intVoteID = Request[\"vote\"].ToInt32() ;
mySurvey.LoadFromDatabase(m_strSurveyID) ;
lblSurveyTitle.Text = mySurvey.Title ;
if (m_intVoteID < mySurvey.Items.Count)
{
mySurvey.Vote(m_intVoteID) ;
}
mySurvey.CreateResultImage(Server.MapPath(\"survey.jpg\") ,
MyClass.Util.MyChart.ChartType.Pie ,
300 ,300 , Color.White) ;
imgSurvey.ImageUrl = \"survey.jpg\" ;
}
catch(Exception e)
{
#if DEBUG
Response.Write (\"初始化页面错误:\" + e.ToString()) ;
return ;
#endif
Page.Navigate(\"error.aspx\") ;
}
}
}
}
要看这个调查的效果,请到http://210.12.102.95/football 。怎么样,是不是觉得这种编程思路不错呢?什么?还不如直接在aspx文件里面做?不错,如果单做这么一个调查的确直接做要省事的多,但你知不知道,只要有编译好的这个类的dll,不管你怎么改页面,改数据结构,你都可以在15分钟内把你所需要的舆论调查做出来?这就是这两种编程方法最大的区别。希望通过这个例子你能学到一些编程思想把。