博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
035. asp.netWeb用户控件之四通过用户控件实现投票和结果分析
阅读量:5299 次
发布时间:2019-06-14

本文共 6160 字,大约阅读时间需要 20 分钟。

 

用户控件Vote.ascx代码

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="vote.ascx.cs" Inherits="vote" %>    
您对本公司的售后服务是否满意?
非常满意
基本满意
不满意
不发表意见
      

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

public partial class vote : System.Web.UI.UserControl{    protected void Page_Load(object sender, EventArgs e)    {    }    ///     /// 从txt文件中读取投票数量    ///     /// 要读取的txt文件的路径及名称    /// 
返回一个int类型的值,用来记录投票数量
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; } /// /// 写入投票数量 /// /// 要操作的txt文件的路径及名称 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" %>    在线投票系统    

结果页面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("");            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() + "人参与投票";        }    }    ///     /// 从txt文件中读取投票数量    ///     /// 要读取的txt文件的路径及名称    /// 
返回一个int类型的值,用来记录投票数量
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" %>    在线投票系统    

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;}

用到的四个文件:

用到的几张图片:

最终效果展示:

 

转载于:https://www.cnblogs.com/wxylog/p/6187345.html

你可能感兴趣的文章
Servlet中的Filter 过滤器的简单使用!
查看>>
实验2
查看>>
求解斐波那契数列模$p$意义下最短循环节
查看>>
Window7幻灯片字体显示混乱,难道真的是病毒么
查看>>
JavaScript的程序构成
查看>>
driver: Linux设备模型之input子系统具体解释
查看>>
golang基于etcd实现分布式锁(转)
查看>>
解决pod search出来的库不是最新
查看>>
钱币兑换问题(hd1284)
查看>>
1.Two Sum
查看>>
对话框
查看>>
工厂+单例模式
查看>>
javascript的类、委托、事件
查看>>
SSL-ZYC 2645 线段树练习题二
查看>>
【算法题12 解码方法decode way】
查看>>
采用Operator-sdk轻松将helm chart转为Operator
查看>>
Sublime Text 3下安装MarkDown并实时预览
查看>>
NOIP2011 计算系数
查看>>
淘淘商城之创建工程
查看>>
2019-04-03 SQL Group By某列,预先对该列进行一个预处理,提炼出共有的信息,即关键字case when 列名什么条件 then 赋值 else 赋值 end as 新列名...
查看>>