zoukankan      html  css  js  c++  java
  • 035. asp.netWeb用户控件之四通过用户控件实现投票和结果分析

    用户控件Vote.ascx代码

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="vote.ascx.cs" Inherits="vote" %>
        <link href="style.css" rel="stylesheet" type="text/css" />
        <style type="text/css">
            .style1
            {
                font-size: small;
                color: #0066CC;
            }
        </style>
    <div id="box">
      <table width="370" border="0">
        <tr>
          <td width="364" height="37" class="style1">您对本公司的售后服务是否满意?</td>
        </tr>
        <tr>
          <td height="106">
              <asp:RadioButtonList ID="RadioButtonList1" runat="server" Font-Size="9pt">
                  <asp:ListItem Selected="True">非常满意</asp:ListItem>
                  <asp:ListItem>基本满意</asp:ListItem>
                  <asp:ListItem>不满意</asp:ListItem>
                  <asp:ListItem>不发表意见</asp:ListItem>
              </asp:RadioButtonList>
            </td>
        </tr>
        <tr>
          <td height="30" align="center">
              <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="images/dc_03.gif" 
                  onclick="ImageButton1_Click" />
                    <img src="images/dc_05.gif" width="82" height="33" onclick="window.location.replace('result.aspx')"  style="cursor:pointer"/></td>
        </tr>
      </table>
    </div>

    用户控件vote.ascx.cs代码:

    public partial class vote : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
    
        }
        /// <summary>
        /// 从txt文件中读取投票数量
        /// </summary>
        /// <param name="P_str_path">要读取的txt文件的路径及名称</param>
        /// <returns>返回一个int类型的值,用来记录投票数量</returns>
        public static int readCount(string P_str_path)
        {
            int P_int_count = 0;
            StreamReader streamread;
            streamread = File.OpenText(P_str_path);
            while (streamread.Peek() != -1)
            {
                P_int_count = int.Parse(streamread.ReadLine());
            }
            streamread.Close();
            return P_int_count;
        }
        /// <summary>
        /// 写入投票数量
        /// </summary>
        /// <param name="P_str_path">要操作的txt文件的路径及名称</param>
        public static void addCount(string P_str_path)
        {
            int P_int_count = readCount(P_str_path);
            P_int_count += 1;
            //将数据记录写入文件
            StreamWriter streamwriter = new StreamWriter(P_str_path, false);
            streamwriter.WriteLine(P_int_count);
            streamwriter.Close();
        }
        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            string P_str_IP = Request.UserHostAddress.ToString();
            HttpCookie oldCookie = Request.Cookies["userIP"];
            if (oldCookie == null)
            {
                int flag = RadioButtonList1.SelectedIndex;
                switch (flag)
                {
                    case 0: addCount(Server.MapPath("result1.txt")); break;
                    case 1: addCount(Server.MapPath("result2.txt")); break;
                    case 2: addCount(Server.MapPath("result3.txt")); break;
                    case 3: addCount(Server.MapPath("result4.txt")); break;
                }
                Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('投票成功,谢谢您的参与!');", true);
                HttpCookie newCookie = new HttpCookie("userIP");    //定义新的Cookie对象
                newCookie.Expires = DateTime.MaxValue;
                //添加新的Cookie变量IPaddress,值为P_str_IP
                newCookie.Values.Add("IPaddress", P_str_IP);
                Response.AppendCookie(newCookie);            //将变量写入Cookie文件中
            }
            else
            {
                string P_str_oldIP = oldCookie.Values["IPaddress"];
                if (P_str_IP.Trim() == P_str_oldIP.Trim())
                {
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('一个IP地址只能投一次票,谢谢您的参与!');", true);
                }
                else
                {
                    HttpCookie newCookie = new HttpCookie("userIP");
                    newCookie.Values.Add("IPaddress", P_str_IP);
                    newCookie.Expires = DateTime.MaxValue;
                    Response.AppendCookie(newCookie);
                    int rflag = RadioButtonList1.SelectedIndex;
                    switch (rflag)
                    {
                        case 0: addCount("result1.txt"); break;
                        case 1: addCount("result2.txt"); break;
                        case 2: addCount("result3.txt"); break;
                        case 3: addCount("result4.txt"); break;
                    }
                    Page.ClientScript.RegisterStartupScript(this.GetType(), "", "alert('投票成功,谢谢您的参与!');", true);
                }
            }
        }
    }

    结果页面result.aspx代码:

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <%@ Register src="vote.ascx" tagname="vote" tagprefix="uc1" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
        <uc1:vote ID="vote1" runat="server" />
        </form>
    </body>
    </html>

    结果页面result.aspx.cs代码:

    public partial class Default2 : System.Web.UI.Page
    {
        protected string M_str_rate1;
        protected string M_str_rate2;
        protected string M_str_rate3;
        protected string M_str_rate4;
        protected int P_int_count1;
        protected int P_int_count2;
        protected int P_int_count3;
        protected int P_int_count4;
        protected void Page_Load(object sender, EventArgs e)
        {
            P_int_count1 = readCount(Server.MapPath("result1.txt"));
            P_int_count2 = readCount(Server.MapPath("result2.txt"));
            P_int_count3 = readCount(Server.MapPath("result3.txt"));
            P_int_count4 = readCount(Server.MapPath("result4.txt"));
            int P_int_count = P_int_count1 + P_int_count2 + P_int_count3+P_int_count4;
            if (P_int_count == 0)
            {
                Response.Write("<script>alert('还没有人投过票!')</script>");
                lblresult.Text = "共有0人参与投票";
            }
            else
            {
                M_str_rate1 = (Convert.ToDouble(P_int_count1) * 100 / Convert.ToDouble(P_int_count)).ToString("0.00") + "%";
                M_str_rate2 = (Convert.ToDouble(P_int_count2) * 100 / Convert.ToDouble(P_int_count)).ToString("0.00") + "%";
                M_str_rate3 = (Convert.ToDouble(P_int_count3) * 100 / Convert.ToDouble(P_int_count)).ToString("0.00") + "%";
                M_str_rate4 = (Convert.ToDouble(P_int_count4) * 100 / Convert.ToDouble(P_int_count)).ToString("0.00") + "%";
                lblresult.Text = "共有" + P_int_count.ToString() + "人参与投票";
            }
        }
        /// <summary>
        /// 从txt文件中读取投票数量
        /// </summary>
        /// <param name="P_str_path">要读取的txt文件的路径及名称</param>
        /// <returns>返回一个int类型的值,用来记录投票数量</returns>
        public static int readCount(string P_str_path)
        {
            int P_int_count = 0;
            StreamReader streamread;
            streamread = File.OpenText(P_str_path);
            while (streamread.Peek() != -1)
            {
                P_int_count = int.Parse(streamread.ReadLine());
            }
            streamread.Close();
            return P_int_count;
        }
    }

    默认页面Default.aspx页面代码:

    <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
    
    <%@ Register src="vote.ascx" tagname="vote" tagprefix="uc1" %>
    
    <!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>
    </head>
    <body>
        <form id="form1" runat="server">
        <uc1:vote ID="vote1" runat="server" />
        </form>
    </body>
    </html>

    style.css代码:

    #box {
        height: 195px;
        width: 370px;
        background-image: url(images/1.jpg);
        background-repeat: no-repeat;
        padding-top: 65px;
        padding-right: 45px;
        padding-left: 45px;
    }
    #box2 {
        height: 195px;
        width: 370px;
        background-image: url(images/2.jpg);
        background-repeat: no-repeat;
        padding-top: 65px;
        padding-right: 45px;
        padding-left: 45px;
    }

    用到的四个文件:

    用到的几张图片:

    最终效果展示:

  • 相关阅读:
    Xcode8中Swift3.0适配问题
    Swift3.0语法变化
    一起聊聊 Swift 3.0
    Swift 3.0 的 open,public,internal,fileprivate,private 关键字
    leetcode先刷_Binary Tree Level Order Traversal II
    java + memcached安装
    POJ 2533-Longest Ordered Subsequence(DP)
    网络协议——IP
    使用百度地图——入门
    取消延时功能
  • 原文地址:https://www.cnblogs.com/wxylog/p/6187345.html
Copyright © 2011-2022 走看看