深圳升蓝软件
数据库开发 .Net技术  |  ASP技术 PHP技术 JSP技术 应用技术类   
Hiblue Software

从一个舆论调查的制作谈面向对象的编程思路(五)


March 25,2004
好了,现在万事俱备,只欠东风了,让我们看看现在做一个舆论调查多么简单:

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分钟内把你所需要的舆论调查做出来?这就是这两种编程方法最大的区别。希望通过这个例子你能学到一些编程思想把。
       
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved