已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
課程設(shè)計報告題目在線投票系統(tǒng)課程名稱網(wǎng)頁設(shè)計綜合課程設(shè)計院部名稱信息技術(shù)學(xué)院專業(yè)計算機科學(xué)與技術(shù)班級10級計算機科學(xué)與技術(shù)(特)學(xué)生姓名黃娟娟學(xué)號1005201016課程設(shè)計地點B407課程設(shè)計學(xué)時20指導(dǎo)教師周秀娥金陵科技學(xué)院教務(wù)處制成績一、課程設(shè)計目的本課程設(shè)計是通過利用ASPNET進行互動媒體學(xué)習(xí)社區(qū)的結(jié)構(gòu)設(shè)計、調(diào)試、連接、鞏固,加深并擴大所學(xué)到的理論知識,培養(yǎng)基本理論分析,解決實際問題的能力,逐步掌握信息系統(tǒng)的設(shè)計和調(diào)試的基本步驟,同時培養(yǎng)嚴肅認真、細致踏實、刻苦磚研、有所創(chuàng)造、實事求是的科學(xué)作風(fēng)。二、課程設(shè)計要求本課程設(shè)計以使用ASPNET技術(shù)和ACCESS數(shù)據(jù)庫系統(tǒng),共40學(xué)時。要求先進行系統(tǒng)分析,對問題進行模塊劃分,進行總體設(shè)計,畫出各種模塊流程圖;然后進行詳細設(shè)計,采用上機操作方法;最后編寫系統(tǒng)的使用說明及課程設(shè)計報告書。三、課程設(shè)計設(shè)備奔騰II以上計算機,裝有MICROSOFTVISUALSTUDIO2008及ACCESS2003中文版軟件四、課程設(shè)計原理、方法上機操作。五、課程設(shè)計步驟實例說明目前,INTERNET上的很多網(wǎng)站都具備網(wǎng)上調(diào)查功能,為了使在線投票網(wǎng)站制作得更精致,通常情況下,在顯示投票結(jié)果時將采用百分比形式,如果網(wǎng)站的調(diào)查結(jié)果以餅狀圖的方式和表格的形式顯示,則會使網(wǎng)站更具直觀性。另外,本例還限制每個用戶的投票次數(shù)(即每個用戶只能對系統(tǒng)中的一個主題進行一次投票)。本實例實現(xiàn)的具體功能如下1添加投票項目2管理投票項目3對項目進行投票4查看投票結(jié)果程序運行結(jié)果如圖下面所示。技術(shù)要點實現(xiàn)在線投票系統(tǒng)主要涉及兩大功能一是防止用戶對同一主題重復(fù)投票,二是以圖形的方式顯示投票的結(jié)果。下面將詳細介紹這兩個功能的具體實現(xiàn)。(1)防止用戶重復(fù)投票在線投票系統(tǒng)中最重要的一個功能就是禁止用戶對某一投票主題進行重復(fù)投票,即一個用戶只能對一個主題投票一次,投票后將不能繼續(xù)投票。實現(xiàn)這一功能通常有兩種方法一是當(dāng)用戶進行投票時,系統(tǒng)首先獲取該用戶的本地IP地址,然后將它與數(shù)據(jù)庫中存在的IP地址比較,如果能檢索出相同的IP地址,就給用戶彈出錯誤信息,如果沒有則會完成用戶投票執(zhí)行票數(shù)增加的操作,并將該用戶的本地IP地址存入數(shù)據(jù)庫;另一種方法是使用COOKIE對象確認用戶的行為。本例中采用的是第二種方法。由于系統(tǒng)中存在多個投票主題,為了區(qū)別各個COOKIE項,可憎使用每個主題的ID作為COOKIE的值。例如,用戶為ID為1的投票主題時,則這個用戶的COOKIES中會多一個新項(“VOTELTEM”,“1”)。實現(xiàn)這一功能的代碼如下HTTPCOOKIEMAKECOOKIENEWHTTPCOOKIE(”VOTE”M_STR_VOTELD);/制造COOKIEMAKECOOKIEVALUESADD(”VOTELTEM”,READCOOKIEVALUES“VOTELTEM”);在用戶投票之前對該用戶的COOKIE進行判斷。首先讀出COOKIE的值,然后對該值進行判斷。如果讀出的COOKIE值為NULL,則表示該用戶從未使用過該投票系統(tǒng),那么就對新創(chuàng)建的COOKIE對象添加新值,并設(shè)置過期時間。如果該用戶已經(jīng)使用過該投票系統(tǒng),就判斷該用戶是否對該主題投過票,若對該主題投過票,就給出錯誤提示并不執(zhí)行投票操作,否則設(shè)置COOKIE對象的值。代碼如下/投票防作弊HTTPCOOKIEMAKECOOKIENEWHTTPCOOKIE(”VOTE”M_STR_VOTELD);/制造COOKIEHTTPCOOKIEREADCOOKIEREQUESTCOOKIES(”VOTE”M_STR_VOTELD);/讀出COOKIEIF(READCOOKIENULL)/從未投過票MAKECOOKIEVALUESADD(”VOTELTEM”,”);/設(shè)置其值MAKECOOKIEEXPIRESDATETIMEMAXVALUE;/設(shè)置過期時間ELSE/已經(jīng)投過票STRINGP_STR_ALLLTENREADCOOKIEVALUES“VOTELTEM”TOSTRING();/讀取已投票的項IF(P_STR_ALLLTEMLNDEXOF(”1)/未對該主題投過票MAKECOOKIEVALUESADD(”VOTELTEM”,READCOOKIEVALUES“VOTELTEM”);ELSE/已對該主題投過票RESPONSEWRITE(”ALERT(”該主題你已經(jīng)在成功投過票,不能重新投票”);”);RETURN;(2)圖形方式顯示投票結(jié)果以圖形方式顯示投票結(jié)果更加直觀、形象,是投票系統(tǒng)人性化的表現(xiàn)。本實例以數(shù)據(jù)庫中檢索出的數(shù)據(jù)為依據(jù),以餅狀圖形顯示投票結(jié)果。在繪制圖形時,按投票的選項將餅形圖劃分成相應(yīng)的幾部分,通過投票選項的票數(shù)計算出相應(yīng)選項在餅狀圖中所分配的角度數(shù)據(jù),然后利用GRAPHICS類中的FILLPIE方法完成圖形繪制。FILLPIE方法的語法格式如下FILLPIEBRUSHBRUSH,FLOATX,FLOATY,FLOATWIDTH,FLOATHEIGHT,FLOATSTARTANGLE,FLOATSWEEPANGLE參數(shù)含義如下。(1)BRUSH確定填充特性的BRUSH(2)X邊框左上角的X坐標(biāo),該邊框定義扇形區(qū)所屬的橢圓。(3)Y邊框左上角的Y坐標(biāo),該邊框定義扇形區(qū)所屬的橢圓。(4)WIDTH邊框的寬度,該邊框定義扇形區(qū)所屬的橢圓。(5)HEIGTH邊框的高度,該邊框定義扇形區(qū)所屬的橢圓。(6)STARTANGLE從X軸沿順時針方向旋轉(zhuǎn)到扇形區(qū)第一個邊所測得的角度(以度為單位)。(7)SWEEPANGLE從STARTANGLE參數(shù)沿順時針方向旋轉(zhuǎn)到扇形區(qū)第二個邊所測得的角度(以度為單位)。繪制完成后,利用BITMAP類的SAVE方法將圖形輸出到頁面中。SAVE方法的語法格式如下PUBLICVOIDSAVESTREAMSTREAM,LMAGEFORMATFORMAT參數(shù)含義如下。(1)STREAM將在其中保存圖像的STREAM。(2)FORMAT指定保存的圖像的格式。顯示投票結(jié)果的餅形圖是由RESULTIMAGEASPX頁生成的,在該頁的頁面加載事件中接收頁面間傳值,并調(diào)用生成餅圖的方法。代碼如下PROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSESTRINGP_STR_VOTELDREQUEST“VOTELD”STRINGP_STR_TITLESERVERURLDECODEREQUEST“TITLE”IMGP_STR_VOTELD,P_STR_TITLE生成餅圖的方法具有兩個STRING類型的參數(shù)P_STR_VOTELD和P_STR_TITLE,分別為表示投票主題的LD和名稱。代碼如下PUBLICVOIDIMGSTRINGP_STR_VOTELD,STRINGP_STR_TITLEREGIONDATASETMYDS1DBREDS“SELECTFROMTB_VOTELTEMWHEREVOTELD”P_STR_VOTSLD/計算總票數(shù)DATASETMYDS2DBREDS“SELECTSUNVOTETOTALASTOTALFROMTB_VOTELTEMWHEREVOTELD”P_STR_VOTELDINTP_LNT_SUMCONVERTTOLNT32MYDS2TABLES0ROWS00TOSTRINGINTP_LNT_LTEMCONTENTMYDS1TABLES0ROWSCOUNT/獲取該投票主題的選項個數(shù)STRINGP_STR_VOTECONTENTNEWSTRINGP_LNT_LTEMCOUNT/存儲每個選項的投票名稱STRINGP_STR_VOTETOTALNEWSTRINGP_LNT_LTEMCOUNT/存儲每個選項的投票數(shù)INTP_LNT_VAL0/變量,用于設(shè)置數(shù)組的下標(biāo)FOREACHDATAROWDRINMYDS1TABLES0ROWSP_STR_VOTECONTENTP_LNT_VALDR2TOSTRING/獲取每個選項的投票名稱P_STR_VOTETOTALP_LNT_VALDR3TOSTRING/獲取每個選項的投票數(shù)P_LNT_VALBITMAPBITMAPNEWBITMAP600,800GRAPHICSGRAPHICSGRAPHICSFROMLMAGEBITMAPTRYGRAPHICSCLEARCOLORWHITEPENPEN1NEWPENCOLORREDBRUSHBRUSHNEWBRUSHP_LNT_LTEMCOUNT1BRUSHBRUSH1NEWSOLIDBRUSHCOLORWHITEFORINTI0IALERT“”EXMESSAGE”MEMORYSTREAMMSNEWMEMORYSTREAMBITMAPSAVEMS,SYSTEMDRAWINGLMAGINGLMAGEFORMATGIFRESPONSECLEARCONTENTRESPONSECONTENTTYPE”IMAGE/GIF”RESPONSEBINARYWRITEMSTOARRAYGRAPHICSDISPOSEENDREGIONRANDOMNUM方法用于生成一個小于255的非負隨機數(shù),利用這個隨機數(shù)來生成BRUSH對象的填充色。代碼如下PUBLICINTRANDOMNUMINTI/產(chǎn)生0255之間的隨機數(shù)RANDOMRNDNEWRANDOMIUNCHECKEDINTDATETIMENOWTICKS/初始化一個RANDOM實例INTRNDNUMRNDNEXT255/返回小于255的非負隨機數(shù)RETURNRNDNUM開發(fā)過程一、數(shù)據(jù)庫設(shè)計本實例采用SQLSERVER2005數(shù)據(jù)庫系統(tǒng),在該系統(tǒng)中新建一個數(shù)據(jù)庫并將其命名為DB_VOTE。創(chuàng)建投票項信息表TB_VOTE,用于保存投票項的基本信息,表結(jié)構(gòu)如表下面所示。字段名稱類型是否主鍵描述VOTEIDINT投票項編號VOTETITLEVARCHAR投票項名稱創(chuàng)建投票選項信息表TB_VOTEITEM,用于保存投票選項的基本信息,表結(jié)構(gòu)如表下面所示。字段名稱類型是否主鍵描述VOTEITEMIDINT投票選項編號VOTEIDINT投票項編號VOTECONTENTVARCHAR選項內(nèi)容VOTETOTALVARCHAR票數(shù)二、配置WEBCONNFIG由于WEBCONFIG文件對于訪問站點的用戶來說是不可見的,也是不可訪問的。所以為了系統(tǒng)數(shù)據(jù)的安全和易操作,可以在配置文件WEBCONFIG中配置一些參數(shù),本例將在WEBCONFIG文件中配置數(shù)據(jù)庫連接字符串。代碼如下三、公共類編號在項目開發(fā)中,良好的類設(shè)計能夠使系統(tǒng)結(jié)構(gòu)更加清晰,并且可以加強代碼的重用性和易維護性。在本例中也建立了一個公共類DBCS,用來執(zhí)行各種數(shù)據(jù)庫操作及公共方法。公共類DBCS中包含3個方法,分別為GETCON方法、SQLEX方法和REDS方法,它們的功能說明及設(shè)計如下。1GETCON方法GETCON方法主要用來連接數(shù)據(jù)庫,使用CONFIGURATIONMANAGER對象的APPSETTINGS屬性值獲取配置節(jié)中連接數(shù)據(jù)庫的字符串實例化SQLCONNECTION對象,并返回該對象。代碼如下/配置連接字符串/返回SPLCONNECTION對象PUBLICSTATICSQLCONNECTIONGETCONRETURNNEWSQLCONNECTIONCONFIGURATIONMANAGERAPPSETTINGS“GETCON”/配置連接字符串2SQLEXSTRINGCMDSTR方法SQLEX方法主要使用SQLCOMMAND對象執(zhí)行數(shù)據(jù)庫操作,如添加、修改、刪除等,它包括一個STRING字符型參數(shù),用來接收具體執(zhí)行的SQL語句。執(zhí)行該方法后,成功返回1,失敗返回0。代碼如下/執(zhí)行SQL語句/用來執(zhí)行的SQL語句/返回是否成功,成功返回TRUE,否則返回FALSEPUBLICSTATICBOOLEXSQLSTRINGP_STR_CMDTXTSQLCONNECTIONCONDBGETCON/連接數(shù)據(jù)庫CONOPEN/打開連接SQLCOMMANDCMDNEWSQLCOMMANDP_STR_CMDTXT,CONTRYCMDEXECUTENONQUERY/執(zhí)行SQL語句并返回受影響的行數(shù)RETURNTRUECATCHEXCEPTIONERETURNFALSEFINALLYCONDISPOSE/釋放連接對象資源3REDSSTRINGCMDSTR方法REDS方法主要使用SQLDATAADAPTER對象的FILL方法填充DATASET數(shù)據(jù)集,它包括一個STRING字符型參數(shù),用來接收具體查詢的SQL語句。執(zhí)行該方法后,將返回保存查詢結(jié)果的DATASET對象。代碼如下/返回DATASET結(jié)果集/用來查詢的SQL語句/結(jié)果集PUBLICSTATICDATASETREDSSTRINGP_STR_CMDTXTSQLCONNECTIONCONDBGETCON/連接上數(shù)據(jù)庫SQLDATAADAPTERDANEWSQLDATAADAPTERP_STR_CMDTXT,CONDATASETDSNEWDATASETDAFILLDSRETURNDS/返回DATASET對象四、模塊設(shè)計說明1系統(tǒng)主頁實現(xiàn)過程系統(tǒng)主頁面(DEFAULTASPX)實現(xiàn)了系統(tǒng)導(dǎo)航功能,是整個應(yīng)用程序的起始頁。該頁運行結(jié)果如圖下面所示。實現(xiàn)系統(tǒng)主頁的步驟如下1界面設(shè)計在該頁面添加3個IMAGEBUTTON控件,具體屬性設(shè)置如表下面所示??丶愋涂丶Q主要屬性設(shè)置用途IMGBTNADDIMAGEURL屬性設(shè)置為“/IMAGE/主頁切/主頁按鈕添加投票項IPG”跳轉(zhuǎn)到添加投票項頁面標(biāo)準(zhǔn)/IMAGEBUTTON控件IMGBTNALIMAGEURL屬性設(shè)置為跳轉(zhuǎn)到所有L“/IMAGE/主頁切/主頁按鈕所有投票IPG”投票頁面IMGBTNMANAGEIMAGEURL屬性設(shè)置為“/IMAGE/主頁切/主頁按鈕投票項管理IPG”跳轉(zhuǎn)到投票項管理頁面2跳轉(zhuǎn)到其他頁面功能的實現(xiàn)頁面之間的跳轉(zhuǎn)功能是通過RESPONSE對象的REDIRECT方法實現(xiàn)的。當(dāng)用戶單擊【添加投票項】、【所有投票】、【投票項管理】按鈕時,分別將頁面跳轉(zhuǎn)到添加投票項頁面ADDVOTEASPX、所有投票頁面ALLVOTEASPX、投票項管理頁MANAGEVOTEASPX。代碼如下PROTECTEDVOIDIMGBTNADD_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSERESPONSEREDIRECT“/ADDVOTEASPX“/跳轉(zhuǎn)到添加投票頁PROTECTEDVOIDIMGBTNALL_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSERESPONSEREDIRECT“/ALLVOTEASPX“/跳轉(zhuǎn)到所有投票頁PROTECTEDVOIDIMGBTNMANAGE_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSERESPONSEREDIRECT“/MANAGEVOTEASPX“/跳轉(zhuǎn)到投票項管理頁2添加投票項頁面實現(xiàn)過程數(shù)據(jù)表TB_VOTE、TB_VOTEITEM技術(shù)數(shù)據(jù)庫操作添加投票項頁面(ADDVOTEASPX)主要實現(xiàn)添加投票主題以及添加或刪除投票選項的功能。在頁面初始化時,只顯示添加投票標(biāo)題。當(dāng)用戶添加投票標(biāo)題后,才顯示添加投票選項面板,用戶可以添加或刪除該主題的投票選項,可以單擊按鈕結(jié)束投票選項的編輯。單擊【返回】按鈕,跳轉(zhuǎn)到系統(tǒng)主頁面。頁面的運行結(jié)果如圖下面所示。實現(xiàn)添加投票項頁面的步驟如下1界面設(shè)計在該頁面添加2個TEXTBOX控件,2個BUTTON控件、2個LINKBUTTON控件、2個REQUIREDFIELDVALIDATOR控件、1個LISTBOX控件和3個IMAGEBUTTON控件,具體屬性設(shè)置如表下面所示??丶愋涂丶Q主要屬性設(shè)置用途TXTVOTETITLE輸入投票的標(biāo)題標(biāo)準(zhǔn)/TEXTBOX控件TXTITEM輸入投票選項LNKBTNADDITEMTEXT屬性設(shè)置為“插入”添加投票選項名稱TEXT屬性設(shè)置為“移除”標(biāo)準(zhǔn)/LINKBUTTON控件LNKBTNREMOVECAUSESVALIDATION屬性設(shè)置為FALSE刪除投票選項CONTROLTOVALIDATE屬性設(shè)置為TXTVOTETITLEREQUIREDFIELDVALIDATOR1ERRORMESSAGE屬性設(shè)置為“”投票標(biāo)題輸入框不能為空CONTROLTOVALIDATE屬性設(shè)置為TXTITEMERRORMESSAGE屬性設(shè)置為“”驗證/REQUIREDFIELDVALIDATOR控件REQUIREDFIELDVALIDATOR2ENABLED屬性設(shè)置為FALSE投票選項輸入框不能為空標(biāo)準(zhǔn)/LISTBOX控件LBITEM用于顯示投票選項IMGBTNADDIMAGEURL屬性設(shè)置為“/IMAGE/子頁切/添加按鈕JPG”添加投票標(biāo)題CAUSESVALIDATION屬性設(shè)置為FALSEIMGBTNBACKIMAGEURL屬性設(shè)置為“/IMAGE/子頁切/返回按鈕JPG”實現(xiàn)返回到主頁CAUSESVALIDATION屬性設(shè)置為FALSEIMAGEURL屬性設(shè)置為“/IMAGE/關(guān)閉BMP”標(biāo)準(zhǔn)/IMAGEBUTTON控件IMGBTNCLOSETOOLTIP屬性設(shè)置為“關(guān)閉”結(jié)束投票選項的編輯2初始化頁面在頁面初始化時,首先定義一個靜態(tài)的STRING類型的變量,用于存儲投票主題的編號,代碼如下PUBLICSTATICSTRINGM_STR_VOTEIDNULL/投票主題的編號然后,創(chuàng)建一個SET方法用于設(shè)置頁面中控件的狀態(tài),代碼如下/頁面設(shè)置REGIONPUBLICVOIDSETBOOLP_BL_VALUETXTTITLEENABLEDP_BL_VALUE/輸入標(biāo)題的文本框是否可用REQUIREDFIELDVALIDATOR1ENABLEDP_BL_VALUE/驗證標(biāo)題文本框的驗證控件是否啟用IMGBTNADDENABLEDP_BL_VALUE/添加按鈕是否可用PANELITEMVISIBLEP_BL_VALUE/PANEL控件是否顯示REQUIREDFIELDVALIDATOR2ENABLEDP_BL_VALUE/驗證投票選項的文本框的驗證控件是否啟用ENDREGION在頁面加載事件中調(diào)用SET方法設(shè)置頁面,代碼如下PROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSEIFISPOSTBACKSETTRUE3添加投票項單擊【添加】按鈕可以完成添加新投票項功能。單擊該按鈕時,將觸發(fā)按鈕的IMGBTNADD_CLICK事件。在該事件中首先調(diào)用AUTOID方法自動獲得投票項的編號,保存在M_STR_VOTEID變量中,然后判斷自動編號是否NULL值,如果不為空值,則執(zhí)行添加操作,并返回一個布爾值,如果成功則返回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/設(shè)置頁面ELSERESPONSEWRITE“ALERT添加失敗,請查找原因“ENDREGION其中,生成自動編號的方法為AUTOID,該方法有兩個STRING類型的參數(shù)P_STR_TBNAME和P_STR_COLNAME,分別用來傳遞產(chǎn)生自動編號的表名和列名。代碼如下/自動編號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添加投票選項添加操作成功后,將顯示添加投票選項模板,對投票選項進行操作。單擊【插入】按鈕將觸發(fā)LINKBUTTON控件的CLICK事件,在該事件中將數(shù)據(jù)添加到數(shù)據(jù)庫,并顯示在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/設(shè)置頁面ELSERESPONSEWRITE“ALERT添加失敗,請查找原因“ENDREGION將該主題的投票選項顯示在LISTBOX控件中是通過調(diào)用BIND方法實現(xiàn)的,該方法的參數(shù)為投票選項的投票主題編號。代碼如下/綁定LISTBOX控件REGIONPUBLICVOIDBINDSTRINGP_STR_VOTEIDDATASETDSDBREDS“SELECTFROMTB_VOTEITEMWHEREVOTEID“P_STR_VOTEIDLBITEMDATASOURCEDSLBITEMDATATEXTFIELD“VOTECONTENT“/設(shè)置為列表項提供文本內(nèi)容的字段LBITEMDATAVALUEFIELD“VOTEITEMID“/設(shè)置為列表項提供值的字段LBITEMDATABIND/將數(shù)據(jù)源綁定到LISTBOX控件ENDREGION5刪除選中的投票選項用戶單擊【移除】按鈕,將刪除在LISTBOX控件中選中的投票選項。如果操作成功,則重新綁定LISTBOX控件;否則,彈出“移除失敗,請查找原因”提示信息。代碼如下/刪除投票選項REGIONPROTECTEDVOIDLNKBTNREMOVE_CLICKOBJECTSENDER,EVENTARGSESTRINGP_STR_ITEMIDTHISLBITEMSELECTEDVALUEBOOLP_BL_REVALDBEXSQL“DELETEFROMTB_VOTEITEMWHEREVOTEITEMID“P_STR_ITEMIDIFP_BL_REVALBINDM_STR_VOTEID/重新綁定ELSERESPONSEWRITE“ALERT移除失敗,請查找原因“ENDREGION6關(guān)閉編輯投票選項面板投票選項編輯完成后,單擊按鈕,將隱藏編輯投票選項面板。代碼如下/結(jié)束投票選項的編輯REGIONPROTECTEDVOIDIMGBTNCLOSE_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSESETTRUETHISTXTTITLETEXT“ENDREGION7返回主頁完成投票主題及投票選項的操作后可以通過單擊【返回】按鈕結(jié)束投票選項的編輯,并跳轉(zhuǎn)到主頁面(DEFAULTASPX)。代碼如下/返回REGIONPROTECTEDVOIDIMGBTNBACK_CLICKOBJECTSENDER,IMAGECLICKEVENTARGSERESPONSEREDIRECT“/DEFAULTASPX“/跳轉(zhuǎn)到主頁ENDREGION3查看所有投票頁面的實現(xiàn)過程數(shù)據(jù)表TB_VOTE、TB_VOTEITEM技術(shù)DATALIST控件綁定查看所有的投票頁(ALLVOTEASPX)用于顯示在線投票系統(tǒng)中所有投票的名稱。用戶可以通過單擊投票名稱超鏈接對該名稱的投票項進行投票。查看所有投票頁的運行結(jié)果如圖下面所示。實現(xiàn)查看所有投票頁面的步驟如下1界面設(shè)計在查看所有投票頁面上添加兩個HYPERLINK控件和1個DATALIST控件,并在DATALIST控件的ITEMTEMPLATE模板中添加1個LINKBUTTON控件,具體屬性設(shè)置如表下面所示??丶愋涂丶Q主要屬性設(shè)置用途TEXT屬性設(shè)置為“返回”標(biāo)準(zhǔn)/HYPERLINK控件HPLINKBACKNAVIGATEURL屬性設(shè)置為“/DEFAULTASPX”返回主頁標(biāo)準(zhǔn)/DATALIST控件DLVOTE顯示投票主題TEXT屬性設(shè)置為“DATABINDEREVALCONTAINERDATAITEM,”VOTETITLE”標(biāo)準(zhǔn)/HYPERLINK控件HPLINKVOTETITLETEXT屬性設(shè)置為“”/VOTEASPXVOTEID”DATABINDEREVALCONTAINERDATAITEM,”VOTEID”顯示投票的標(biāo)題,用戶單擊某主題時跳轉(zhuǎn)到投票頁面2初始化頁面在頁的初始化事件PAGE_LOAD中實現(xiàn)對DATALIST控件的綁定,將投票主題綁定到DATALIST控件上。代碼如下PROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSEIFISPOSTBACKBIND/綁定DATALIST控件PUBLICVOIDBINDDATASETDSDBREDS“SELECTFROMTB_VOTE“DLVOTEDATASOURCEDSDLVOTEDATABIND4投票頁面的實現(xiàn)過程數(shù)據(jù)表TB_VOTE、TB_VOTEITEM技術(shù)COOKIE的應(yīng)用投票頁(VOTEASPX)用于用戶對某一主題進行投票。用戶選擇任何一個投票選項名稱后單擊我要投票按鈕,即可對該主題進行投票,投票后將顯示投票結(jié)果頁。投票頁的運行結(jié)果如圖下面所示。實現(xiàn)投票頁面的步驟如下(1)界面設(shè)計在投票頁面上添加1個HYPERLINK控件、1個LABEL控件、1個RADIOBUTTONLIST控件和2個BUTTON控件,并在DATALIST控件的ITEMTEMPLATE模板中添加1個LINKBUTTON控件,具體屬性設(shè)置如表下面所示??丶愋涂丶Q主要屬性設(shè)置用途IMAGEURL屬性設(shè)置為“/IMAGE/子頁切/返回按鈕IPG”標(biāo)準(zhǔn)/HYPERLINK控件HPLINKBACKNAVIGATEURL屬性設(shè)置為“/DEFAULTASPX”返回主頁標(biāo)準(zhǔn)/LABEL控件LABVOTETITLE顯示投票主題標(biāo)準(zhǔn)RBLVOTE顯示投票/RADIOBUTTONLIST控件ITEM選項BTNVOTETEXT屬性設(shè)置為“我要投票”投票操作標(biāo)準(zhǔn)/BUTTON控件BTNRESULTTEXT屬性設(shè)置為“查看結(jié)果”顯示投票結(jié)果頁2初始化頁面在VOTEASPX頁的初始化事件PAGE_LOAD中實現(xiàn)投票信息的顯示。首先獲得投票的主題ID,然后調(diào)用顯示該投票的標(biāo)題及投票選項。代碼如下PUBLICPARTIALCLASSVOTESYSTEMWEBUIPAGEPUBLICSTATICSTRINGM_STR_VOTEIDPROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSEIFISPOSTBACKM_STR_VOTEIDREQUEST“VOTEID“LABBIND/顯示投票標(biāo)題RBLBIND/顯示投票選項顯示投票標(biāo)題的IABBIND方法就是將數(shù)據(jù)從數(shù)據(jù)庫中讀出來,然后在LABEL控件中顯示出來。代碼如下/綁定LABEL控件PUBLICVOIDLABBINDDATASETDSDBREDS“SELECTVOTETITLEFROMTB_VOTEWHEREVOTEID“M_STR_VOTEIDLABVOTETITLETEXTDSTABLES0ROWS00TOSTRING顯示投票選項的方法為RBLBIND,它是將數(shù)據(jù)庫中的數(shù)據(jù)存儲在DATASET數(shù)據(jù)集中,并以及DATASET為數(shù)據(jù)源,顯示在RADIOBUTTONLIST控件中。代碼如下/綁定RADIOBUTTONLIST控件PUBLICVOIDRBLBINDDATASETDSDBREDS“SELECTFROMTB_VOTEITEMWHEREVOTEID“M_STR_VOTEIDRBLVOTEITEMDATASOURCEDSRBLVOTEITEMDATATEXTFIELD“VOTECONTENT“RBLVOTEITEMDATAVALUEFIELD“VOTEITEMID“RBLVOTEITEMDATABIND3投票功能用戶單擊我要投票按鈕時,將觸發(fā)BTNVOTE_CLICK事件,實現(xiàn)用戶投票的功能。在投票事件中,首先判斷該用戶是否使用該系統(tǒng)投過票,是否對該投票主題投過票,即避免用戶進行重復(fù)投票,因為每位用戶只能對一個投票主題投一次票。如果該用戶沒有對該主題投過票,那么對選中的投票選項的票數(shù)加1,并添加COOKIE,然后顯示投票結(jié)果頁。如果該用戶已經(jīng)對該主題投過票,將跳出事件,不執(zhí)行投票操作。代碼如下PROTECTEDVOIDBTNVOTE_CLICKOBJECTSENDER,EVENTARGSE/投票防作弊HTTPCOOKIEMAKECOOKIENEWHTTPCOOKIE“VOTE“M_STR_VOTEID/制造COOKIEHTTPCOOKIEREADCOOKIEREQUESTCOOKIES“VOTE“M_STR_VOTEID/讀出COOKIEIFREADCOOKIENULL/從未投過票MAKECOOKIEVALUESADD“VOTEITEM“,“/設(shè)置其值MAKECOOKIEEXPIRESDATETIMEMAXVALUE/設(shè)置過期時間ELSE/已經(jīng)投過票STRINGP_STR_ALLITEMREADCOOKIEVALUES“VOTEITEM“TOSTRING/讀取已投票的項IFP_STR_ALLITEMINDEXOF“1/未對該主題投過票MAKECOOKIEVALUESADD“VOTEITEM“,READCOOKIEVALUES“VOTEITEM“ELSE/已對該主題投過票RESPONSEWRITE“ALERT該主題你已經(jīng)成功投過票,不能重新投票“RETURN/執(zhí)行投票操作,票數(shù)加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查看投票結(jié)果用戶單擊【查看結(jié)果】按鈕,通過在RESPONSE對象的WRITE方法中的JAVASCRIPT腳本將VOTERESULTASPX頁面在一個新WEB窗口中打開,在該頁面中顯示該主題的投票結(jié)果。代碼如下PROTECTEDVOIDBTNRESULT_CLICKOBJECTSENDER,EVENTARGSERESPONSEWRITE“WINDOWOPENVOTERESULTASPXVOTEID“M_STR_VOTEID“5投票結(jié)果頁面的實現(xiàn)過程數(shù)據(jù)表TB_VOTEITEM技術(shù)餅狀圖顯示投票結(jié)果投票結(jié)果頁(VOTERESULTASPX)以餅圖的方式顯示某一主題的投票結(jié)果。投票結(jié)果頁的運行結(jié)果如圖下面所示。實現(xiàn)投票結(jié)果頁面的步驟如下1界面設(shè)計在投票結(jié)果頁面上添加1個IMAGEBUTTON控件和1個IMAGE控件,具體屬性設(shè)置如表下面所示??丶愋涂丶Q主要屬性設(shè)置用途標(biāo)準(zhǔn)/IMAGEBUTTON控件IMGBTNBACKIMAGEURL屬性設(shè)置為“/IMAGE/子頁切/關(guān)閉按鈕IPG”關(guān)閉投票結(jié)果頁標(biāo)準(zhǔn)/IMAGE控件IMGVOTEIMAGE顯示投票結(jié)果2初始化頁面在VOTERESULTASPX頁的初始化事件PAGE_LOAD中實現(xiàn)顯示某主題的投票結(jié)果。首先獲得投票的主題ID和標(biāo)題,然后設(shè)置IMAGE控件顯示圖像的位置。代碼如下PUBLICPARTIALCLASSVOTERESULTSYSTEMWEBUIPAGEPROTECTEDVOIDPAGE_LOADOBJECTSENDER,EVENTARGSESTRINGP_STR_VOTEIDREQUEST“VOTEID“STRINGP_STR_TITLESERVERURLDECODEREQUEST“TITLE“IMGVOTEIMAGEIMAGEURL“/RESULTIMAGEASPXVOTEID“P_STR_VOTEID“3關(guān)閉投票結(jié)果頁單擊關(guān)閉按鈕將觸發(fā)IMGBTNCLOSE_CLICK事件,在該事件中使用RESPONSE對象的WRITE方法執(zhí)行JAVASCRIPT腳本,關(guān)閉當(dāng)前窗口。代碼如下PROTECTEDVOIDIMGBTNIMAGE_CLICKOBJECTSENDER,IMAGEC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年四年級科學(xué)昆蟲標(biāo)本采集與制作考卷
- 2026年鄉(xiāng)村教育創(chuàng)新模式探討及考試及答案
- 醫(yī)療護理員管理制度規(guī)范
- 建筑幕墻防雷系統(tǒng)雷擊計數(shù)器安裝
- 2025年墨梅的試題及答案
- 2025年江蘇省房屋建筑和市政工程招標(biāo)評標(biāo)規(guī)則測試卷附答案
- 2025年煤礦安全生產(chǎn)管理人員安全資格證培訓(xùn)必考判斷題庫及答案
- 2025年醫(yī)學(xué)影像檢查技術(shù)ct試題及答案
- 2025年暑期教師研修暨師德集中學(xué)習(xí)教育考試試題【附答案】
- 線上培訓(xùn)講師合作協(xié)議
- 2025年中考物理試題分類匯編:光現(xiàn)象(第1期)原卷版
- 衛(wèi)生院網(wǎng)絡(luò)安全知識培訓(xùn)課件
- 2025英大證券考試題目及答案
- 食材配送的增值服務(wù)
- 鐵路大票管理辦法
- 風(fēng)信子教學(xué)課件
- 口腔門診急救管理制度
- 二級造價師《計量與計價》(公路交通)題庫(483題)
- 撤銷限高和失信申請書
- DB32∕T 1286-2008 褐飛虱生物型鑒定操作規(guī)程 苗鑒法
- 人孔手孔標(biāo)準(zhǔn)JB577-1979-常壓人孔
評論
0/150
提交評論