网页设计综合课程设计实验报告格式_第1页
网页设计综合课程设计实验报告格式_第2页
网页设计综合课程设计实验报告格式_第3页
网页设计综合课程设计实验报告格式_第4页
网页设计综合课程设计实验报告格式_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计报告题目在线投票系统课程名称网页设计综合课程设计院部名称信息技术学院专业计算机科学与技术班级10级计算机科学与技术(特)学生姓名黄娟娟学号1005201016课程设计地点B407课程设计学时20指导教师周秀娥金陵科技学院教务处制成绩一、课程设计目的本课程设计是通过利用ASPNET进行互动媒体学习社区的结构设计、调试、连接、巩固,加深并扩大所学到的理论知识,培养基本理论分析,解决实际问题的能力,逐步掌握信息系统的设计和调试的基本步骤,同时培养严肃认真、细致踏实、刻苦砖研、有所创造、实事求是的科学作风。二、课程设计要求本课程设计以使用ASPNET技术和ACCESS数据库系统,共40学时。要求先进行系统分析,对问题进行模块划分,进行总体设计,画出各种模块流程图;然后进行详细设计,采用上机操作方法;最后编写系统的使用说明及课程设计报告书。三、课程设计设备奔腾II以上计算机,装有MICROSOFTVISUALSTUDIO2008及ACCESS2003中文版软件四、课程设计原理、方法上机操作。五、课程设计步骤实例说明目前,INTERNET上的很多网站都具备网上调查功能,为了使在线投票网站制作得更精致,通常情况下,在显示投票结果时将采用百分比形式,如果网站的调查结果以饼状图的方式和表格的形式显示,则会使网站更具直观性。另外,本例还限制每个用户的投票次数(即每个用户只能对系统中的一个主题进行一次投票)。本实例实现的具体功能如下1添加投票项目2管理投票项目3对项目进行投票4查看投票结果程序运行结果如图下面所示。技术要点实现在线投票系统主要涉及两大功能一是防止用户对同一主题重复投票,二是以图形的方式显示投票的结果。下面将详细介绍这两个功能的具体实现。(1)防止用户重复投票在线投票系统中最重要的一个功能就是禁止用户对某一投票主题进行重复投票,即一个用户只能对一个主题投票一次,投票后将不能继续投票。实现这一功能通常有两种方法一是当用户进行投票时,系统首先获取该用户的本地IP地址,然后将它与数据库中存在的IP地址比较,如果能检索出相同的IP地址,就给用户弹出错误信息,如果没有则会完成用户投票执行票数增加的操作,并将该用户的本地IP地址存入数据库;另一种方法是使用COOKIE对象确认用户的行为。本例中采用的是第二种方法。由于系统中存在多个投票主题,为了区别各个COOKIE项,可憎使用每个主题的ID作为COOKIE的值。例如,用户为ID为1的投票主题时,则这个用户的COOKIES中会多一个新项(“VOTELTEM”,“1”)。实现这一功能的代码如下HTTPCOOKIEMAKECOOKIENEWHTTPCOOKIE(”VOTE”M_STR_VOTELD);/制造COOKIEMAKECOOKIEVALUESADD(”VOTELTEM”,READCOOKIEVALUES“VOTELTEM”);在用户投票之前对该用户的COOKIE进行判断。首先读出COOKIE的值,然后对该值进行判断。如果读出的COOKIE值为NULL,则表示该用户从未使用过该投票系统,那么就对新创建的COOKIE对象添加新值,并设置过期时间。如果该用户已经使用过该投票系统,就判断该用户是否对该主题投过票,若对该主题投过票,就给出错误提示并不执行投票操作,否则设置COOKIE对象的值。代码如下/投票防作弊HTTPCOOKIEMAKECOOKIENEWHTTPCOOKIE(”VOTE”M_STR_VOTELD);/制造COOKIEHTTPCOOKIEREADCOOKIEREQUESTCOOKIES(”VOTE”M_STR_VOTELD);/读出COOKIEIF(READCOOKIENULL)/从未投过票MAKECOOKIEVALUESADD(”VOTELTEM”,”);/设置其值MAKECOOKIEEXPIRESDATETIMEMAXVALUE;/设置过期时间ELSE/已经投过票STRINGP_STR_ALLLTENREADCOOKIEVALUES“VOTELTEM”TOSTRING();/读取已投票的项IF(P_STR_ALLLTEMLNDEXOF(”1)/未对该主题投过票MAKECOOKIEVALUESADD(”VOTELTEM”,READCOOKIEVALUES“VOTELTEM”);ELSE/已对该主题投过票RESPONSEWRITE(”ALERT(”该主题你已经在成功投过票,不能重新投票”);”);RETURN;(2)图形方式显示投票结果以图形方式显示投票结果更加直观、形象,是投票系统人性化的表现。本实例以数据库中检索出的数据为依据,以饼状图形显示投票结果。在绘制图形时,按投票的选项将饼形图划分成相应的几部分,通过投票选项的票数计算出相应选项在饼状图中所分配的角度数据,然后利用GRAPHICS类中的FILLPIE方法完成图形绘制。FILLPIE方法的语法格式如下FILLPIEBRUSHBRUSH,FLOATX,FLOATY,FLOATWIDTH,FLOATHEIGHT,FLOATSTARTANGLE,FLOATSWEEPANGLE参数含义如下。(1)BRUSH确定填充特性的BRUSH(2)X边框左上角的X坐标,该边框定义扇形区所属的椭圆。(3)Y边框左上角的Y坐标,该边框定义扇形区所属的椭圆。(4)WIDTH边框的宽度,该边框定义扇形区所属的椭圆。(5)HEIGTH边框的高度,该边框定义扇形区所属的椭圆。(6)STARTANGLE从X轴沿顺时针方向旋转到扇形区第一个边所测得的角度(以度为单位)。(7)SWEEPANGLE从STARTANGLE参数沿顺时针方向旋转到扇形区第二个边所测得的角度(以度为单位)。绘制完成后,利用BITMAP类的SAVE方法将图形输出到页面中。SAVE方法的语法格式如下PUBLICVOIDSAVESTREAMSTREAM,LMAGEFORMATFORMAT参数含义如下。(1)STREAM将在其中保存图像的STREAM。(2)FORMAT指定保存的图像的格式。显示投票结果的饼形图是由RESULTIMAGEASPX页生成的,在该页的页面加载事件中接收页面间传值,并调用生成饼图的方法。代码如下PROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSESTRINGP_STR_VOTELDREQUEST“VOTELD”STRINGP_STR_TITLESERVERURLDECODEREQUEST“TITLE”IMGP_STR_VOTELD,P_STR_TITLE生成饼图的方法具有两个STRING类型的参数P_STR_VOTELD和P_STR_TITLE,分别为表示投票主题的LD和名称。代码如下PUBLICVOIDIMGSTRINGP_STR_VOTELD,STRINGP_STR_TITLEREGIONDATASETMYDS1DBREDS“SELECTFROMTB_VOTELTEMWHEREVOTELD”P_STR_VOTSLD/计算总票数DATASETMYDS2DBREDS“SELECTSUNVOTETOTALASTOTALFROMTB_VOTELTEMWHEREVOTELD”P_STR_VOTELDINTP_LNT_SUMCONVERTTOLNT32MYDS2TABLES0ROWS00TOSTRINGINTP_LNT_LTEMCONTENTMYDS1TABLES0ROWSCOUNT/获取该投票主题的选项个数STRINGP_STR_VOTECONTENTNEWSTRINGP_LNT_LTEMCOUNT/存储每个选项的投票名称STRINGP_STR_VOTETOTALNEWSTRINGP_LNT_LTEMCOUNT/存储每个选项的投票数INTP_LNT_VAL0/变量,用于设置数组的下标FOREACHDATAROWDRINMYDS1TABLES0ROWSP_STR_VOTECONTENTP_LNT_VALDR2TOSTRING/获取每个选项的投票名称P_STR_VOTETOTALP_LNT_VALDR3TOSTRING/获取每个选项的投票数P_LNT_VALBITMAPBITMAPNEWBITMAP600,800GRAPHICSGRAPHICSGRAPHICSFROMLMAGEBITMAPTRYGRAPHICSCLEARCOLORWHITEPENPEN1NEWPENCOLORREDBRUSHBRUSHNEWBRUSHP_LNT_LTEMCOUNT1BRUSHBRUSH1NEWSOLIDBRUSHCOLORWHITEFORINTI0IALERT“”EXMESSAGE”MEMORYSTREAMMSNEWMEMORYSTREAMBITMAPSAVEMS,SYSTEMDRAWINGLMAGINGLMAGEFORMATGIFRESPONSECLEARCONTENTRESPONSECONTENTTYPE”IMAGE/GIF”RESPONSEBINARYWRITEMSTOARRAYGRAPHICSDISPOSEENDREGIONRANDOMNUM方法用于生成一个小于255的非负随机数,利用这个随机数来生成BRUSH对象的填充色。代码如下PUBLICINTRANDOMNUMINTI/产生0255之间的随机数RANDOMRNDNEWRANDOMIUNCHECKEDINTDATETIMENOWTICKS/初始化一个RANDOM实例INTRNDNUMRNDNEXT255/返回小于255的非负随机数RETURNRNDNUM开发过程一、数据库设计本实例采用SQLSERVER2005数据库系统,在该系统中新建一个数据库并将其命名为DB_VOTE。创建投票项信息表TB_VOTE,用于保存投票项的基本信息,表结构如表下面所示。字段名称类型是否主键描述VOTEIDINT投票项编号VOTETITLEVARCHAR投票项名称创建投票选项信息表TB_VOTEITEM,用于保存投票选项的基本信息,表结构如表下面所示。字段名称类型是否主键描述VOTEITEMIDINT投票选项编号VOTEIDINT投票项编号VOTECONTENTVARCHAR选项内容VOTETOTALVARCHAR票数二、配置WEBCONNFIG由于WEBCONFIG文件对于访问站点的用户来说是不可见的,也是不可访问的。所以为了系统数据的安全和易操作,可以在配置文件WEBCONFIG中配置一些参数,本例将在WEBCONFIG文件中配置数据库连接字符串。代码如下三、公共类编号在项目开发中,良好的类设计能够使系统结构更加清晰,并且可以加强代码的重用性和易维护性。在本例中也建立了一个公共类DBCS,用来执行各种数据库操作及公共方法。公共类DBCS中包含3个方法,分别为GETCON方法、SQLEX方法和REDS方法,它们的功能说明及设计如下。1GETCON方法GETCON方法主要用来连接数据库,使用CONFIGURATIONMANAGER对象的APPSETTINGS属性值获取配置节中连接数据库的字符串实例化SQLCONNECTION对象,并返回该对象。代码如下/配置连接字符串/返回SPLCONNECTION对象PUBLICSTATICSQLCONNECTIONGETCONRETURNNEWSQLCONNECTIONCONFIGURATIONMANAGERAPPSETTINGS“GETCON”/配置连接字符串2SQLEXSTRINGCMDSTR方法SQLEX方法主要使用SQLCOMMAND对象执行数据库操作,如添加、修改、删除等,它包括一个STRING字符型参数,用来接收具体执行的SQL语句。执行该方法后,成功返回1,失败返回0。代码如下/执行SQL语句/用来执行的SQL语句/返回是否成功,成功返回TRUE,否则返回FALSEPUBLICSTATICBOOLEXSQLSTRINGP_STR_CMDTXTSQLCONNECTIONCONDBGETCON/连接数据库CONOPEN/打开连接SQLCOMMANDCMDNEWSQLCOMMANDP_STR_CMDTXT,CONTRYCMDEXECUTENONQUERY/执行SQL语句并返回受影响的行数RETURNTRUECATCHEXCEPTIONERETURNFALSEFINALLYCONDISPOSE/释放连接对象资源3REDSSTRINGCMDSTR方法REDS方法主要使用SQLDATAADAPTER对象的FILL方法填充DATASET数据集,它包括一个STRING字符型参数,用来接收具体查询的SQL语句。执行该方法后,将返回保存查询结果的DATASET对象。代码如下/返回DATASET结果集/用来查询的SQL语句/结果集PUBLICSTATICDATASETREDSSTRINGP_STR_CMDTXTSQLCONNECTIONCONDBGETCON/连接上数据库SQLDATAADAPTERDANEWSQLDATAADAPTERP_STR_CMDTXT,CONDATASETDSNEWDATASETDAFILLDSRETURNDS/返回DATASET对象四、模块设计说明1系统主页实现过程系统主页面(DEFAULTASPX)实现了系统导航功能,是整个应用程序的起始页。该页运行结果如图下面所示。实现系统主页的步骤如下1界面设计在该页面添加3个IMAGEBUTTON控件,具体属性设置如表下面所示。控件类型控件名称主要属性设置用途IMGBTNADDIMAGEURL属性设置为“/IMAGE/主页切/主页按钮添加投票项IPG”跳转到添加投票项页面标准/IMAGEBUTTON控件IMGBTNALIMAGEURL属性设置为跳转到所有L“/IMAGE/主页切/主页按钮所有投票IPG”投票页面IMGBTNMANAGEIMAGEURL属性设置为“/IMAGE/主页切/主页按钮投票项管理IPG”跳转到投票项管理页面2跳转到其他页面功能的实现页面之间的跳转功能是通过RESPONSE对象的REDIRECT方法实现的。当用户单击【添加投票项】、【所有投票】、【投票项管理】按钮时,分别将页面跳转到添加投票项页面ADDVOTEASPX、所有投票页面ALLVOTEASPX、投票项管理页MANAGEVOTEASPX。代码如下PROTECTEDVOIDIMGBTNADD_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSERESPONSEREDIRECT“/ADDVOTEASPX“/跳转到添加投票页PROTECTEDVOIDIMGBTNALL_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSERESPONSEREDIRECT“/ALLVOTEASPX“/跳转到所有投票页PROTECTEDVOIDIMGBTNMANAGE_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSERESPONSEREDIRECT“/MANAGEVOTEASPX“/跳转到投票项管理页2添加投票项页面实现过程数据表TB_VOTE、TB_VOTEITEM技术数据库操作添加投票项页面(ADDVOTEASPX)主要实现添加投票主题以及添加或删除投票选项的功能。在页面初始化时,只显示添加投票标题。当用户添加投票标题后,才显示添加投票选项面板,用户可以添加或删除该主题的投票选项,可以单击按钮结束投票选项的编辑。单击【返回】按钮,跳转到系统主页面。页面的运行结果如图下面所示。实现添加投票项页面的步骤如下1界面设计在该页面添加2个TEXTBOX控件,2个BUTTON控件、2个LINKBUTTON控件、2个REQUIREDFIELDVALIDATOR控件、1个LISTBOX控件和3个IMAGEBUTTON控件,具体属性设置如表下面所示。控件类型控件名称主要属性设置用途TXTVOTETITLE输入投票的标题标准/TEXTBOX控件TXTITEM输入投票选项LNKBTNADDITEMTEXT属性设置为“插入”添加投票选项名称TEXT属性设置为“移除”标准/LINKBUTTON控件LNKBTNREMOVECAUSESVALIDATION属性设置为FALSE删除投票选项CONTROLTOVALIDATE属性设置为TXTVOTETITLEREQUIREDFIELDVALIDATOR1ERRORMESSAGE属性设置为“”投票标题输入框不能为空CONTROLTOVALIDATE属性设置为TXTITEMERRORMESSAGE属性设置为“”验证/REQUIREDFIELDVALIDATOR控件REQUIREDFIELDVALIDATOR2ENABLED属性设置为FALSE投票选项输入框不能为空标准/LISTBOX控件LBITEM用于显示投票选项IMGBTNADDIMAGEURL属性设置为“/IMAGE/子页切/添加按钮JPG”添加投票标题CAUSESVALIDATION属性设置为FALSEIMGBTNBACKIMAGEURL属性设置为“/IMAGE/子页切/返回按钮JPG”实现返回到主页CAUSESVALIDATION属性设置为FALSEIMAGEURL属性设置为“/IMAGE/关闭BMP”标准/IMAGEBUTTON控件IMGBTNCLOSETOOLTIP属性设置为“关闭”结束投票选项的编辑2初始化页面在页面初始化时,首先定义一个静态的STRING类型的变量,用于存储投票主题的编号,代码如下PUBLICSTATICSTRINGM_STR_VOTEIDNULL/投票主题的编号然后,创建一个SET方法用于设置页面中控件的状态,代码如下/页面设置REGIONPUBLICVOIDSETBOOLP_BL_VALUETXTTITLEENABLEDP_BL_VALUE/输入标题的文本框是否可用REQUIREDFIELDVALIDATOR1ENABLEDP_BL_VALUE/验证标题文本框的验证控件是否启用IMGBTNADDENABLEDP_BL_VALUE/添加按钮是否可用PANELITEMVISIBLEP_BL_VALUE/PANEL控件是否显示REQUIREDFIELDVALIDATOR2ENABLEDP_BL_VALUE/验证投票选项的文本框的验证控件是否启用ENDREGION在页面加载事件中调用SET方法设置页面,代码如下PROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSEIFISPOSTBACKSETTRUE3添加投票项单击【添加】按钮可以完成添加新投票项功能。单击该按钮时,将触发按钮的IMGBTNADD_CLICK事件。在该事件中首先调用AUTOID方法自动获得投票项的编号,保存在M_STR_VOTEID变量中,然后判断自动编号是否NULL值,如果不为空值,则执行添加操作,并返回一个布尔值,如果成功则返回TRUE,否则返回FALSE。代码如下/添加投票REGIONPROTECTEDVOIDIMGBTNADD_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSEM_STR_VOTEIDAUTOID“TB_VOTE“,“VOTEID“STRINGP_STR_TITLETHISTXTTITLETEXTTRIMIFM_STR_VOTEIDNULLBOOLP_BL_REVALDBEXSQL“INSERTINTOTB_VOTEVALUES“M_STR_VOTEID“,“P_STR_TITLE“IFP_BL_REVALSETFALSE/设置页面ELSERESPONSEWRITE“ALERT添加失败,请查找原因“ENDREGION其中,生成自动编号的方法为AUTOID,该方法有两个STRING类型的参数P_STR_TBNAME和P_STR_COLNAME,分别用来传递产生自动编号的表名和列名。代码如下/自动编号REGIONPUBLICSTRINGAUTOIDSTRINGP_STR_TBNAME,STRINGP_STR_COLNAMESTRINGP_STR_IDNULLTRYDATASETDSDBREDS“SELECTMAX“P_STR_COLNAME“FROM“P_STR_TBNAMESTRINGP_STR_VALUEDSTABLES0ROWS00TOSTRINGIFP_STR_VALUE“P_STR_IDCONVERTTOSTRINGCONVERTTOINT32P_STR_VALUE1ELSEP_STR_ID“1“CATCHEXCEPTIONEERESPONSEWRITE“ALERT“EEMESSAGE“RETURNP_STR_IDENDREGION4添加投票选项添加操作成功后,将显示添加投票选项模板,对投票选项进行操作。单击【插入】按钮将触发LINKBUTTON控件的CLICK事件,在该事件中将数据添加到数据库,并显示在LISTBOX控件中。代码如下/添加投票REGIONPROTECTEDVOIDIMGBTNADD_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSEM_STR_VOTEIDAUTOID“TB_VOTE“,“VOTEID“STRINGP_STR_TITLETHISTXTTITLETEXTTRIMIFM_STR_VOTEIDNULLBOOLP_BL_REVALDBEXSQL“INSERTINTOTB_VOTEVALUES“M_STR_VOTEID“,“P_STR_TITLE“IFP_BL_REVALSETFALSE/设置页面ELSERESPONSEWRITE“ALERT添加失败,请查找原因“ENDREGION将该主题的投票选项显示在LISTBOX控件中是通过调用BIND方法实现的,该方法的参数为投票选项的投票主题编号。代码如下/绑定LISTBOX控件REGIONPUBLICVOIDBINDSTRINGP_STR_VOTEIDDATASETDSDBREDS“SELECTFROMTB_VOTEITEMWHEREVOTEID“P_STR_VOTEIDLBITEMDATASOURCEDSLBITEMDATATEXTFIELD“VOTECONTENT“/设置为列表项提供文本内容的字段LBITEMDATAVALUEFIELD“VOTEITEMID“/设置为列表项提供值的字段LBITEMDATABIND/将数据源绑定到LISTBOX控件ENDREGION5删除选中的投票选项用户单击【移除】按钮,将删除在LISTBOX控件中选中的投票选项。如果操作成功,则重新绑定LISTBOX控件;否则,弹出“移除失败,请查找原因”提示信息。代码如下/删除投票选项REGIONPROTECTEDVOIDLNKBTNREMOVE_CLICKOBJECTSENDER,EVENTARGSESTRINGP_STR_ITEMIDTHISLBITEMSELECTEDVALUEBOOLP_BL_REVALDBEXSQL“DELETEFROMTB_VOTEITEMWHEREVOTEITEMID“P_STR_ITEMIDIFP_BL_REVALBINDM_STR_VOTEID/重新绑定ELSERESPONSEWRITE“ALERT移除失败,请查找原因“ENDREGION6关闭编辑投票选项面板投票选项编辑完成后,单击按钮,将隐藏编辑投票选项面板。代码如下/结束投票选项的编辑REGIONPROTECTEDVOIDIMGBTNCLOSE_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSESETTRUETHISTXTTITLETEXT“ENDREGION7返回主页完成投票主题及投票选项的操作后可以通过单击【返回】按钮结束投票选项的编辑,并跳转到主页面(DEFAULTASPX)。代码如下/返回REGIONPROTECTEDVOIDIMGBTNBACK_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSERESPONSEREDIRECT“/DEFAULTASPX“/跳转到主页ENDREGION3查看所有投票页面的实现过程数据表TB_VOTE、TB_VOTEITEM技术DATALIST控件绑定查看所有的投票页(ALLVOTEASPX)用于显示在线投票系统中所有投票的名称。用户可以通过单击投票名称超链接对该名称的投票项进行投票。查看所有投票页的运行结果如图下面所示。实现查看所有投票页面的步骤如下1界面设计在查看所有投票页面上添加两个HYPERLINK控件和1个DATALIST控件,并在DATALIST控件的ITEMTEMPLATE模板中添加1个LINKBUTTON控件,具体属性设置如表下面所示。控件类型控件名称主要属性设置用途TEXT属性设置为“返回”标准/HYPERLINK控件HPLINKBACKNAVIGATEURL属性设置为“/DEFAULTASPX”返回主页标准/DATALIST控件DLVOTE显示投票主题TEXT属性设置为“DATABINDEREVALCONTAINERDATAITEM,”VOTETITLE”标准/HYPERLINK控件HPLINKVOTETITLETEXT属性设置为“”/VOTEASPXVOTEID”DATABINDEREVALCONTAINERDATAITEM,”VOTEID”显示投票的标题,用户单击某主题时跳转到投票页面2初始化页面在页的初始化事件PAGE_LOAD中实现对DATALIST控件的绑定,将投票主题绑定到DATALIST控件上。代码如下PROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSEIFISPOSTBACKBIND/绑定DATALIST控件PUBLICVOIDBINDDATASETDSDBREDS“SELECTFROMTB_VOTE“DLVOTEDATASOURCEDSDLVOTEDATABIND4投票页面的实现过程数据表TB_VOTE、TB_VOTEITEM技术COOKIE的应用投票页(VOTEASPX)用于用户对某一主题进行投票。用户选择任何一个投票选项名称后单击我要投票按钮,即可对该主题进行投票,投票后将显示投票结果页。投票页的运行结果如图下面所示。实现投票页面的步骤如下(1)界面设计在投票页面上添加1个HYPERLINK控件、1个LABEL控件、1个RADIOBUTTONLIST控件和2个BUTTON控件,并在DATALIST控件的ITEMTEMPLATE模板中添加1个LINKBUTTON控件,具体属性设置如表下面所示。控件类型控件名称主要属性设置用途IMAGEURL属性设置为“/IMAGE/子页切/返回按钮IPG”标准/HYPERLINK控件HPLINKBACKNAVIGATEURL属性设置为“/DEFAULTASPX”返回主页标准/LABEL控件LABVOTETITLE显示投票主题标准RBLVOTE显示投票/RADIOBUTTONLIST控件ITEM选项BTNVOTETEXT属性设置为“我要投票”投票操作标准/BUTTON控件BTNRESULTTEXT属性设置为“查看结果”显示投票结果页2初始化页面在VOTEASPX页的初始化事件PAGE_LOAD中实现投票信息的显示。首先获得投票的主题ID,然后调用显示该投票的标题及投票选项。代码如下PUBLICPARTIALCLASSVOTESYSTEMWEBUIPAGEPUBLICSTATICSTRINGM_STR_VOTEIDPROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSEIFISPOSTBACKM_STR_VOTEIDREQUEST“VOTEID“LABBIND/显示投票标题RBLBIND/显示投票选项显示投票标题的IABBIND方法就是将数据从数据库中读出来,然后在LABEL控件中显示出来。代码如下/绑定LABEL控件PUBLICVOIDLABBINDDATASETDSDBREDS“SELECTVOTETITLEFROMTB_VOTEWHEREVOTEID“M_STR_VOTEIDLABVOTETITLETEXTDSTABLES0ROWS00TOSTRING显示投票选项的方法为RBLBIND,它是将数据库中的数据存储在DATASET数据集中,并以及DATASET为数据源,显示在RADIOBUTTONLIST控件中。代码如下/绑定RADIOBUTTONLIST控件PUBLICVOIDRBLBINDDATASETDSDBREDS“SELECTFROMTB_VOTEITEMWHEREVOTEID“M_STR_VOTEIDRBLVOTEITEMDATASOURCEDSRBLVOTEITEMDATATEXTFIELD“VOTECONTENT“RBLVOTEITEMDATAVALUEFIELD“VOTEITEMID“RBLVOTEITEMDATABIND3投票功能用户单击我要投票按钮时,将触发BTNVOTE_CLICK事件,实现用户投票的功能。在投票事件中,首先判断该用户是否使用该系统投过票,是否对该投票主题投过票,即避免用户进行重复投票,因为每位用户只能对一个投票主题投一次票。如果该用户没有对该主题投过票,那么对选中的投票选项的票数加1,并添加COOKIE,然后显示投票结果页。如果该用户已经对该主题投过票,将跳出事件,不执行投票操作。代码如下PROTECTEDVOIDBTNVOTE_CLICKOBJECTSENDER,EVENTARGSE/投票防作弊HTTPCOOKIEMAKECOOKIENEWHTTPCOOKIE“VOTE“M_STR_VOTEID/制造COOKIEHTTPCOOKIEREADCOOKIEREQUESTCOOKIES“VOTE“M_STR_VOTEID/读出COOKIEIFREADCOOKIENULL/从未投过票MAKECOOKIEVALUESADD“VOTEITEM“,“/设置其值MAKECOOKIEEXPIRESDATETIMEMAXVALUE/设置过期时间ELSE/已经投过票STRINGP_STR_ALLITEMREADCOOKIEVALUES“VOTEITEM“TOSTRING/读取已投票的项IFP_STR_ALLITEMINDEXOF“1/未对该主题投过票MAKECOOKIEVALUESADD“VOTEITEM“,READCOOKIEVALUES“VOTEITEM“ELSE/已对该主题投过票RESPONSEWRITE“ALERT该主题你已经成功投过票,不能重新投票“RETURN/执行投票操作,票数加1STRINGP_STR_VOTEITEMIDTHISRBLVOTEITEMSELECTEDVALUESTRINGP_STR_CMDTXT“UPDATETB_VOTEITEMSETVOTETOTALVOTETOTAL1WHEREVOTEITEMID“P_STR_VOTEITEMID“ANDVOTEID“M_STR_VOTEIDBOOLP_BL_REVALDBEXSQLP_STR_CMDTXTIFP_BL_REVALRESPONSEAPPENDCOOKIEMAKECOOKIE/写入COOKIERESPONSEWRITE“ALERT投票成功,感谢您的支持WINDOWOPENVOTERESULTASPXVOTEID“M_STR_VOTEID“ELSERESPONSEWRITE“ALERT投票失败“4查看投票结果用户单击【查看结果】按钮,通过在RESPONSE对象的WRITE方法中的JAVASCRIPT脚本将VOTERESULTASPX页面在一个新WEB窗口中打开,在该页面中显示该主题的投票结果。代码如下PROTECTEDVOIDBTNRESULT_CLICKOBJECTSENDER,EVENTARGSERESPONSEWRITE“WINDOWOPENVOTERESULTASPXVOTEID“M_STR_VOTEID“5投票结果页面的实现过程数据表TB_VOTEITEM技术饼状图显示投票结果投票结果页(VOTERESULTASPX)以饼图的方式显示某一主题的投票结果。投票结果页的运行结果如图下面所示。实现投票结果页面的步骤如下1界面设计在投票结果页面上添加1个IMAGEBUTTON控件和1个IMAGE控件,具体属性设置如表下面所示。控件类型控件名称主要属性设置用途标准/IMAGEBUTTON控件IMGBTNBACKIMAGEURL属性设置为“/IMAGE/子页切/关闭按钮IPG”关闭投票结果页标准/IMAGE控件IMGVOTEIMAGE显示投票结果2初始化页面在VOTERESULTASPX页的初始化事件PAGE_LOAD中实现显示某主题的投票结果。首先获得投票的主题ID和标题,然后设置IMAGE控件显示图像的位置。代码如下PUBLICPARTIALCLASSVOTERESULTSYSTEMWEBUIPAGEPROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSESTRINGP_STR_VOTEIDREQUEST“VOTEID“STRINGP_STR_TITLESERVERURLDECODEREQUEST“TITLE“IMGVOTEIMAGEIMAGEURL“/RESULTIMAGEASPXVOTEID“P_STR_VOTEID“3关闭投票结果页单击关闭按钮将触发IMGBTNCLOSE_CLICK事件,在该事件中使用RESPONSE对象的WRITE方法执行JAVASCRIPT脚本,关闭当前窗口。代码如下PROTECTEDVOIDIMGBTNIMAGE_CLICKOBJECTSENDER,IMAGEC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论