




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章ASP.NET內(nèi)置對(duì)象學(xué)習(xí)目標(biāo)
通過(guò)本章知識(shí)的學(xué)習(xí),讀者在了解ASP.NET內(nèi)置對(duì)象作用的同時(shí),理解各內(nèi)置對(duì)象之間的區(qū)別,掌握常用內(nèi)置對(duì)象的使用方法。理解ASP.NET常用內(nèi)置對(duì)象的作用和區(qū)別。掌握Response對(duì)象的常用屬性和方法。掌握Request對(duì)象的常用屬性和方法,以及利用該對(duì)象實(shí)現(xiàn)頁(yè)面?zhèn)髦岛驼{(diào)用對(duì)象的方法。掌握Session對(duì)象在頁(yè)面之間實(shí)現(xiàn)傳值功能的方法。了解Application對(duì)象,以及其使用方法。了解Cookie對(duì)象,以及其使用方法。6.1情景分析
用戶在使用網(wǎng)站過(guò)程中,時(shí)常會(huì)見(jiàn)到會(huì)員管理、網(wǎng)站瀏覽次數(shù)統(tǒng)計(jì)、當(dāng)前網(wǎng)站在線用戶人數(shù)、在線聊天室和網(wǎng)上投票等內(nèi)容。在使用網(wǎng)站時(shí),如何進(jìn)行存儲(chǔ)用戶信息,并實(shí)現(xiàn)跨頁(yè)面?zhèn)鬟f呢?
網(wǎng)絡(luò)上的聊天室相信大家并不陌生,用戶首先通過(guò)聊天室登錄,進(jìn)入聊天室聊天。為了便于聊天室的管理,我們要對(duì)聊天室用戶進(jìn)行身份驗(yàn)證,即通過(guò)訪問(wèn)后臺(tái)數(shù)據(jù)庫(kù)中的用戶表,驗(yàn)證用戶名和用戶密碼是否一致。當(dāng)信息一致時(shí),用戶完成驗(yàn)證,進(jìn)行聊天室,同時(shí)并利用Session對(duì)象保存用戶信息。用戶在登錄時(shí),如果勾選了“記錄我的信息”復(fù)選項(xiàng),則用戶名會(huì)保存到客戶端Cookie對(duì)象中。當(dāng)用戶再次登錄時(shí)會(huì)自動(dòng)輸入,效果如圖6-1所示。
在聊天室中,在線用戶可以通過(guò)Application對(duì)象實(shí)現(xiàn)相互聊天,用戶發(fā)表的內(nèi)容會(huì)同步顯示到頁(yè)面上,效果如圖6-2所示。6.2ASP.NET常用對(duì)象ASP.NET提供了多種內(nèi)置對(duì)象,這些對(duì)象可以在頁(yè)面上以及頁(yè)面之間方便地實(shí)現(xiàn)獲取、輸出、傳遞、保留各種信息等操作,以完成復(fù)雜功能。內(nèi)置對(duì)象是對(duì)服務(wù)器控件很好的補(bǔ)充,進(jìn)一步擴(kuò)展了ASP.NET程序的功能。常用的內(nèi)部對(duì)象有Page、Response、Request、Session、Application和Cookie等。1Page對(duì)象Page對(duì)象由System.Web.UI.Page類(lèi)實(shí)現(xiàn),它主要用于處理ASP.NET頁(yè)面的內(nèi)容。IsPostBack是Page對(duì)象最為重要的屬性,它返回一個(gè)布爾類(lèi)型的值(True/False),用于判斷頁(yè)面是第一次加載,還是為響應(yīng)客戶端回發(fā)而加載。名稱(chēng)說(shuō)
明IsPostBack屬性用于判斷頁(yè)面是否是第一次被加載。當(dāng)頁(yè)面是第一次加載時(shí),IsPostBack屬性值為False;否則值為T(mén)rueIsValid屬性用于判斷頁(yè)面驗(yàn)證是否成功Load事件頁(yè)面加載時(shí)激活該事件Unload事件頁(yè)面從內(nèi)存中卸載時(shí)激活事件【例6-1】設(shè)計(jì)動(dòng)態(tài)添加候選項(xiàng)的頁(yè)面。當(dāng)頁(yè)面初次加載時(shí),“個(gè)人愛(ài)好”顯示“游泳”、“唱歌”和“爬山”三個(gè)選項(xiàng),下面的文本框里顯示“請(qǐng)輸入新的選項(xiàng)”。用戶在文本框中輸入選項(xiàng)內(nèi)容,并單擊“添加”按鈕,可以實(shí)現(xiàn)選項(xiàng)的添加,效果如圖6-3所示。(Ex6-1.aspx)<div>
個(gè)人愛(ài)好:<asp:CheckBoxListID="ckbtnllove"runat="server"RepeatDirection="Horizontal"><asp:ListItem>游泳</asp:ListItem><asp:ListItem>唱歌</asp:ListItem><asp:ListItem>爬山</asp:ListItem></asp:CheckBoxList><asp:TextBoxID="txtadd"runat="server"></asp:TextBox><asp:ButtonID="btnadd"runat="server"Text="添加"/></div>protectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack)txtadd.Text="請(qǐng)輸入新的選項(xiàng)";elseckbtnllove.Items.Add(txtadd.Text);}2Response對(duì)象Response對(duì)象由System.Web.HttpResponse類(lèi)實(shí)現(xiàn),主要用于控制對(duì)瀏覽器的輸出。它允許將數(shù)據(jù)作為請(qǐng)求的結(jié)果發(fā)送到瀏覽器中,并提供有關(guān)響應(yīng)的信息。它可以用來(lái)在頁(yè)面中輸入數(shù)據(jù),在頁(yè)面中跳轉(zhuǎn),還可以傳遞各個(gè)頁(yè)面的參數(shù)。名稱(chēng)說(shuō)
明Buffer屬性設(shè)置是否緩沖輸出,取值為T(mén)rue或False,默認(rèn)為T(mén)rueContentType屬性控制輸出的文件類(lèi)型Cookies屬性獲取響應(yīng)Cookie集合Write方法Response對(duì)象最常用的方法,用于輸出信息到客戶端Redirect方法將客戶端重定向到新的URLClear方法清除緩沖區(qū)流中的所有內(nèi)容輸出End方法將當(dāng)前所有緩沖的輸出發(fā)送到客戶端,停止該頁(yè)的執(zhí)行,并引發(fā)EndRequest事件AddHeader方法用指定的值添加HTML標(biāo)題【例6-2】利用DropDownList控件的SelectedIndexChanged事件,實(shí)現(xiàn)動(dòng)態(tài)改變LinkButton控件的顯示文本。并利用Response對(duì)象的Redirect方法實(shí)現(xiàn)頁(yè)面地址重定向,效果如圖6-4所示。(Ex6-2.aspx)<div><asp:DropDownListID="ddlfri"runat="server"AutoPostBack="True"onselectedindexchanged="ddlfri_SelectedIndexChanged"><asp:ListItemValue="Ex6-2.aspx">友情鏈接</asp:ListItem><asp:ListItemValue="">百度</asp:ListItem><asp:ListItemValue="">淘寶網(wǎng)</asp:ListItem><asp:ListItemValue="">搜虎</asp:ListItem></asp:DropDownList><asp:LinkButtonID="lkbtnfri"runat="server"onclick="lkbtnfri_Click">轉(zhuǎn)向鏈接網(wǎng)站</asp:LinkButton></div>protectedvoidddlfri_SelectedIndexChanged(objectsender,EventArgse){Response.Write("<script>alert('使用了Response的Redirect方法')</script>");lkbtnfri.Text=ddlfri.SelectedItem.Text;}protectedvoidlkbtnfri_Click(objectsender,EventArgse){Response.Redirect(ddlfri.SelectedValue);}3Request對(duì)象Request對(duì)象由System.Web.HttpRequest類(lèi)實(shí)現(xiàn),主要用于獲取客戶端信息。當(dāng)用戶打開(kāi)Web瀏覽器并從網(wǎng)站請(qǐng)求Web頁(yè)時(shí),Web服務(wù)器就接收一個(gè)HTTP請(qǐng)求,此請(qǐng)求包含用戶、用戶的計(jì)算機(jī)、頁(yè)面以及瀏覽器的相關(guān)信息,這些信息將被完整地封裝,并通過(guò)Request對(duì)象得以使用。名稱(chēng)說(shuō)
明Form屬性獲取客戶端在Web表單中所輸入的數(shù)據(jù)集合QueryString屬性獲取HTTP查詢字符串變量集合Cookies屬性獲取客戶端發(fā)送的Cookie集合ServerVariables屬性獲取Web服務(wù)器變量的集合Browser屬性獲取或設(shè)置有關(guān)正在請(qǐng)求的客戶端瀏覽器的功能信息MapPath方法獲取當(dāng)前請(qǐng)求的URL虛擬路徑映射到服務(wù)器上的物理路徑SaveAs方法將HTTP請(qǐng)求保存到硬盤(pán)1.ServerVariables和Browser屬性Request對(duì)象的ServerVariables屬性和Browser屬性,分別用于獲取服務(wù)器環(huán)境和客戶端瀏覽器相關(guān)信息內(nèi)容。它們的語(yǔ)法格式分別為Request.ServerVariables["環(huán)境變量名稱(chēng)"]和Request.Browser["瀏覽器屬性名稱(chēng)"]?!纠?-3】利用Request對(duì)象的ServerVariables屬性和Browser屬性顯示服務(wù)器和客戶端瀏覽器相關(guān)信息,效果如圖6-5所示。(Ex6-3.aspx)2.Form屬性
利用Request對(duì)象的Form屬性可以獲取窗體中的變量,以實(shí)現(xiàn)信息的傳遞和處理。這里的表單是指HTML代碼中<form>標(biāo)記內(nèi)的內(nèi)容,<form>表單的method屬性默認(rèn)為Post。當(dāng)向.aspx文件中添加控件時(shí),大多數(shù)控件的HTML代碼都會(huì)顯示在表單中。此時(shí)就可以利用Request對(duì)象的Form屬性來(lái)獲取Web窗體中控件或變量的值。語(yǔ)法為:Request.Form[“控件名或變量名”],語(yǔ)法也可以簡(jiǎn)寫(xiě)為:Request[“控件名或變量名”]?!纠?-4】利用Request對(duì)象的Form屬性實(shí)現(xiàn)頁(yè)面間信息傳遞。即將頁(yè)面Ex6-4.aspx中的用戶名和密碼傳送到第二個(gè)頁(yè)面Ex6-4(2).aspx,效果如圖6-6所示。(Ex6-4.aspx和Ex6-4(2).aspx)<asp:TextBoxID="txtpwd"runat="server"TextMode="Password"></asp:TextBox><asp:ButtonID="btnsend"runat="server"Text="提交"PostBackUrl="~/Ex6-4(2).aspx"/><asp:LabelID="lblmes"runat="server"Text="接收到的表單信息:"></asp:Label>protectedvoidPage_Load(objectsender,EventArgse){lblmes.Text+="<br>用戶名:"+Request.Form["txtname"].ToString();lblmes.Text+="<br>密碼:"+Request.Form["txtpwd"].ToString();}3.QueryString屬性
上面使用了Request對(duì)象的Form屬性傳遞了用戶信息,屬于頁(yè)面間參數(shù)傳遞的隱式傳遞,即post方法。除此之外,還可以使用get方法顯式傳遞參數(shù)。
使用get方法時(shí),需要使用QueryString屬性來(lái)獲取標(biāo)識(shí)在URL后面的所有返回的變量及值,使用方法為:Request.QueryString[“變量名稱(chēng)”]。例如,當(dāng)客戶端URL發(fā)出“http://news.aspx?nid=12&nkey=公司”請(qǐng)求時(shí),利用QueryString屬性就會(huì)獲取nid和nkey兩個(gè)變量的值。【例6-5】利用Request對(duì)象的QueryString屬性實(shí)現(xiàn)頁(yè)面間信息傳遞。單擊頁(yè)面Ex6-5.aspx中的超鏈接,將頁(yè)面轉(zhuǎn)到Ex6-5(2).aspx,并獲取Ex6-5.aspx顯式傳遞過(guò)來(lái)的兩個(gè)變量的值,效果如圖6-7所示。(Ex6-5.aspx和Ex6-5(2).aspx)<ahref="Ex6-5(2).aspx?name=張明明&key=zmm123">轉(zhuǎn)到下一個(gè)頁(yè)面</a><div>
接收參數(shù)信息如下:<br/>name的值:<asp:LabelID="lblname"runat="server"Text=""></asp:Label>key的值:<asp:LabelID="lblkey"runat="server"Text=""></asp:Label></div>protectedvoidPage_Load(objectsender,EventArgse){lblname.Text=Request.QueryString["name"];lblkey.Text=Request.QueryString["key"];}4Session對(duì)象Session對(duì)象由System.Web.SessionState類(lèi)實(shí)現(xiàn),主要用于記載特定用戶信息。用戶對(duì)頁(yè)面進(jìn)行訪問(wèn)時(shí),ASP.NET應(yīng)用程序會(huì)為每一個(gè)用戶分配一個(gè)Session對(duì)象,即不同用戶擁有各自不同的Session對(duì)象。由于Session對(duì)象可以在網(wǎng)站的任意一個(gè)頁(yè)面進(jìn)行訪問(wèn),所以常用于存儲(chǔ)需要跨頁(yè)面使用的信息。名稱(chēng)說(shuō)
明SessionID屬性獲取會(huì)話唯一標(biāo)識(shí)符,存儲(chǔ)用戶的SessionIDTimeout屬性獲取并設(shè)置在會(huì)話狀態(tài)提供程序終止會(huì)話之前各請(qǐng)求之間所允許的時(shí)間(以分鐘min為單位),默認(rèn)為20分鐘Abandon方法取消當(dāng)前會(huì)話,清除Session對(duì)象【例6-6】利用Session對(duì)象實(shí)現(xiàn)網(wǎng)站后臺(tái)登錄的身份驗(yàn)證。在第一個(gè)頁(yè)面中,用戶輸入用戶名和密碼,點(diǎn)擊“后臺(tái)管理”按鈕后,將用戶名和密碼信息保存至Session對(duì)象中。在第二個(gè)頁(yè)面中先利用Session[“user”]來(lái)判斷用戶是否已登錄,若登錄則出現(xiàn)“用戶注銷(xiāo)”按鈕;否則出現(xiàn)無(wú)權(quán)訪問(wèn)的提示。同時(shí),單擊“用戶注銷(xiāo)”按鈕實(shí)現(xiàn)Session對(duì)象信息清除,效果如圖6-8所示。(Ex6-6.aspx和Ex6-6(2).aspx)<div>
用戶名:<asp:TextBoxID="txtname"runat="server"Width="80px"></asp:TextBox><br/>
密碼:<asp:TextBoxID="txtpwd"runat="server"TextMode="Password"></asp:TextBox><br/><asp:ButtonID="Button1"runat="server"Text="后臺(tái)管理"onclick="Button1_Click"/></div>protectedvoidButton1_Click(objectsender,EventArgse){Session["user"]=txtname.Text;Session["pwd"]=txtpwd.Text;Response.Redirect("Ex6-6(2).aspx");}<div><asp:LabelID="lblmes"runat="server"Text="Label"></asp:Label><asp:HyperLinkID="hplback"runat="server"NavigateUrl="~/Ex6-6.aspx"Visible="False">返回上一頁(yè)</asp:HyperLink><asp:ButtonID="btnquit"runat="server"onclick="btnquit_Click"Text="用戶注銷(xiāo)"
Visible="False"/></div>protectedvoidPage_Load(objectsender,EventArgse){if(Session["user"]!=null&&Session["user"].ToString()!=""){lblmes.Text="用戶信息如下:<br>用戶名:"+Session["user"].ToString()+"<br>密碼:"+Session["pwd"].ToString();btnquit.Visible=true;Session.Timeout=10;
}else{lblmes.Text="你無(wú)權(quán)進(jìn)入后臺(tái)管理!6秒后自動(dòng)返回上頁(yè)。<br>或單擊下面的鏈接。";hplback.Visible=true;Response.Write("<script>setTimeout('window.history.back()',6000)</script>");}}protectedvoidbtnquit_Click(objectsender,EventArgse){Session.Abandon();Response.Redirect("Ex6-6(2).aspx");}5Application對(duì)象Application對(duì)象由System.Web.HttpApplication類(lèi)實(shí)現(xiàn),主要用于存儲(chǔ)網(wǎng)站的共享信息。與Session對(duì)象存儲(chǔ)信息的方式類(lèi)似,Application對(duì)象也是將用戶信息存儲(chǔ)在服務(wù)器中。兩者的不同在于:Application對(duì)象是一個(gè)公用變量,允許應(yīng)用程序的所有用戶使用;而Session對(duì)象只允許某個(gè)特定的用戶使用。Application對(duì)象的生命周期止于網(wǎng)站IIS關(guān)閉或者Clear()方法清除;而Session對(duì)象的生命周期上于用戶頁(yè)面的關(guān)閉或者Abandon()方法清除。
由于多個(gè)用戶可以共享一個(gè)Application對(duì)象,為了保證用戶在修改Application對(duì)象值時(shí)的資源同步訪問(wèn),需要使用Application對(duì)象的Lock和Unlock方法進(jìn)行對(duì)象的加鎖和解鎖。【例6-7】使用Application對(duì)象實(shí)現(xiàn)網(wǎng)站訪問(wèn)數(shù)量統(tǒng)計(jì),效果如圖6-9所示。(Ex6-7.aspx)
<div>
你是本站的第<asp:LabelID="lblnum"runat="server"ForeColor="Red"></asp:Label>位訪客!</div>protectedvoidPage_Load(objectsender,EventArgse){if(Application["usernum"]==null){Application["usernum"]=1;}else{Application.Lock();
Application["usernum"]=(Int32)Application["usernum"]+1;Application.UnLock();}lblnum.Text=Application["usernum"].ToString();}6Cookie對(duì)象Cookie對(duì)象由System.Web.HttpCookie類(lèi)實(shí)現(xiàn),主要用于客戶端存儲(chǔ)用戶個(gè)人信息。Cookie對(duì)象與Session、Application對(duì)象類(lèi)似,是一種集合對(duì)象,都是用于保存數(shù)據(jù)。
Cookie對(duì)象不隸屬于Page對(duì)象,分別屬于Request和Response對(duì)象,每一個(gè)Cookie變量都由Cookies對(duì)象所管理。要保存一個(gè)Cookie變量,需要通過(guò)Response對(duì)象的Cookies集合,具體語(yǔ)法為:Response.Cookies["變量名"].Value=值;
讀取Cookie對(duì)象時(shí),需要使用Request對(duì)象,具體語(yǔ)法為:
變量
=Request.Cookies["變量名"].Value;名稱(chēng)說(shuō)
明Name屬性獲取Cookie變量的名稱(chēng)Value屬性獲取或設(shè)置Cookie對(duì)象的值Count屬性獲取Cookies集合中的Cookie對(duì)象的數(shù)量Expires屬性設(shè)置Cookie對(duì)象的生命周期,默認(rèn)為1000min;當(dāng)值小于等于0時(shí),生命周期結(jié)束Add方法創(chuàng)建新對(duì)象并將其添加到Cookies集合中【例6-8】使用Cookie對(duì)象實(shí)現(xiàn)用戶登錄信息自動(dòng)填充。當(dāng)用戶第二次使用該網(wǎng)站時(shí),用戶名信息會(huì)自動(dòng)輸入,從而方便用戶。用戶單擊“清除Cookie”按鈕時(shí),實(shí)現(xiàn)Cookie對(duì)象中的用戶信息清除,效果如圖6-10所示。(Ex6-8.aspx)<div>用戶名:<asp:TextBoxID="txtname"runat="server"Width="88px"></asp:TextBox>密碼:<asp:TextBoxID="txtpwd"runat="server"TextMode="Password"></asp:TextBox><asp:ButtonID="btnsave"runat="server"Text="寫(xiě)入Cookies"onclick="btnsave_Click"/><asp:ButtonID="btnclear"runat="server"onclick="btnclear_Click"Text="清除Cookie"/></div>protectedvoidPage_Load(objectsender,EventArgse){if(Request.Cookies["mycookie"]!=null){txtname.Text=Request.Cookies["mycookie"].Value;}}protectedvoidbtnsave_Click(objectsender,EventArgse){Response.Cookies["mycookie"].Value=txtname.Text;Response.Cookies["mycookie"].Expires=DateTime.Now.AddDays(30);}protectedvoidbtnclear_Click(objectsender,EventArgse){HttpCookieacookie;stringckname;intcknum=Request.Cookies.Count;for(inti=0;i<cknum;i++)
{ckname=Request.Cookies[i].Name;acookie=newHttpCookie(ckname);acookie.Expires=DateTime.Now.AddDays(-1);Response.Cookies.Add(acookie);}Response.AddHeader("Refresh","0");}6.3在線聊天室
相信許多人對(duì)聊天室并不陌生,它是網(wǎng)站實(shí)現(xiàn)用戶互動(dòng)的主要手段之一。本節(jié)通過(guò)運(yùn)用Session、Application和Cookie等ASP.NET對(duì)象知識(shí),實(shí)現(xiàn)在線聊天室的開(kāi)發(fā)。1.數(shù)據(jù)庫(kù)表設(shè)計(jì)(1)啟動(dòng)Access數(shù)據(jù)庫(kù),新建數(shù)據(jù)庫(kù),命名為mychat.mdb。(2)通過(guò)“新建表”命令,創(chuàng)建用戶信息表chatmem。表中字段有用戶編號(hào)mid(自動(dòng)編號(hào)),昵稱(chēng)mname(文本,10個(gè)字符長(zhǎng)度),密碼mpwd(文本,8個(gè)字符長(zhǎng)度)。其中,mid為主關(guān)鍵字。(3)輸入部分用戶信息,如“happyday、222”,“redink、111”等。(4)檢查網(wǎng)站的“解決方案資源管理器”窗口,是否存在App_Data系統(tǒng)文件夾。如果不存在,用戶可以通過(guò)右擊項(xiàng)目,選擇快捷菜單“添加ASP.NET文件夾(s)”下的“App_Data”命令創(chuàng)建。(5)將建好的數(shù)據(jù)庫(kù)文件mychat.mdb移動(dòng)到App_Data系統(tǒng)文件夾中。(6)檢查網(wǎng)站的“解決方案資源管理器”窗口,是否存在Web配置文件Web.config。如果不存在,用戶可以通過(guò)右擊項(xiàng)目,選擇快捷菜單“添加新項(xiàng)”命令。在“添加新項(xiàng)”窗口中選擇“Web配置文件”模板,并將文件命名為Web.config,單擊“添加”按鈕。(7)在“解決方案資源管理器”窗口中,雙擊打開(kāi)Web.config,找到<appSettings/>節(jié)。把<appSettings/>修改為:<appSettings><addkey="strcon"value="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=|DataDirectory|mychat.mdb"/></appSettings>(8)在“解決方案資源管理器”窗口中,右擊項(xiàng)目選擇快捷菜單“添加新項(xiàng)”命令。在“添加新項(xiàng)”窗口中選擇“全局應(yīng)用程序類(lèi)”模板,并將文件命名為Global.asax,單擊“添加”按鈕。(9)在“解決方案資源管理器”窗口中,雙擊打開(kāi)Global.asax,在Application_Start事件中,輸入以下代碼:voidApplication_Start(objectsender,EventArgse){Application["mcount"]=0;Application["chatcon"]="";Application["userlist"]="所有人";Application.UnLock();}(10)在Session_Start事件中,輸入以下代碼:voidSession_Start(objectsender,EventArgse){Application.Lock();Application["mcount"]=Convert.ToInt32(Application["mcount"].ToString())+1;Application.UnLock();}(11)在Session_End事件中,輸入以下代碼:voidSession_End(objectsender,EventArgse){Application.Lock();Application["mcount"]=Convert.ToInt32(Application["mcount"].ToString())-1;Application.UnLock();}2用戶登錄實(shí)現(xiàn)(12)在“解決方案資源管理器”窗口中,通過(guò)右擊項(xiàng)目選擇快捷菜單“添加新項(xiàng)”命令添加一個(gè)Web窗體,命名為chatlogin.aspx。(13)在頁(yè)面中添加一個(gè)6行2列的表格,在表格中的第1、2、5和6行單元格進(jìn)行合并。在第1行單元格中輸入“聊天室登錄”,并設(shè)置單元格格式。(14)在第2行單元格中輸入“歡迎訪問(wèn)聊天室,當(dāng)前在線人數(shù):”,并在文本后添加1個(gè)Label控件,設(shè)置ID屬性為“l(fā)blnum”。(15)在第3行左側(cè)單元格中輸入“昵稱(chēng):”;右側(cè)單元格中添加TextBox控件,設(shè)置ID屬性為“txtname”;在右側(cè)添加RequiredFieldValidator驗(yàn)證控件,設(shè)置ID屬性為“rqcname”,ControlToValidate屬性為“txtname”、ErrorMessage屬性為“用戶名必須輸入”。(16)在第4行左側(cè)單元格中輸入“密碼:”;右側(cè)單元格中添加TextBox控件,設(shè)置ID屬性為“txtpwd”,TextMode屬性為“Password”;在右側(cè)添加RequiredFieldValidator驗(yàn)證控件,設(shè)置ID屬性為“rqcpwd”,ControlToValidate屬性為“txtpwd”、ErrorMessage屬性為“密碼必須輸入”。(17)在第5行單元格中添加1個(gè)RequiredFieldValidator復(fù)選框控件,設(shè)置ID屬性為“ckbrem”,Text屬性為“記錄我的信息”。(18)在第6行單元格中添加2個(gè)Button控件。第1個(gè)Button控件的ID屬性“btnlogin”,Text屬性為“登錄”;第2個(gè)Button控件的ID屬性“btncancel”,Text屬性為“取消”。(19)雙擊“登錄”控件,輸入btnlogin_Click單擊事件,代碼如下:protectedvoidbtnlogin_Click(objectsender,EventArgse){stringuname=txtname.Text.Trim();stringupwd=txtpwd.Text.Trim();stringstrcon=System.Configuration.ConfigurationManager.AppSettings["strcon"].ToString();OleDbConnectionconn=newOleDbConnection(strcon);stringsql0="selectcount(*)fromchatmemwheremname='"+uname.ToLower()+"'andmpwd='"+upwd.ToLower()+"'";conn.Open();OleDbCommandocmd=newOleDbCommand(sql0,conn);if(Convert.ToInt32(ocmd.ExecuteScalar())>0){//判斷用戶是否選擇“記住我的信息”復(fù)選項(xiàng)if(ckbrem.Checked){//保存用戶Cookie信息Response.Cookies["ckname"].Value=uname;Response.Cookies["ckname"].Expires=DateTime.Now.AddDays(15);}//保存用戶名Session信息Session["uname"]=uname;
Application["userlist"]+=","+uname;Response.Redirect("chatmain.aspx");}else{Response.Write("<script>alert('用戶信息不正確!');</script>");}}(20)雙擊“取消”按鈕,輸入btncancel_Click單擊事件,代碼如下:protectedvoidbtncancel_Click(objectsender,EventArgse){Response.AddHeader("Refresh","0");}(21)雙擊頁(yè)面空白處,打開(kāi),輸入以下代碼:protectedvoidPage_Load(objectsender,EventArgse){lblnum.Text=Application["mcount"].ToString();if(!IsPostBack){if(Request.Cookies["ckname"]!=null){txtname.Text=Request.Cookies["ckname"].Value;}
}}(22)完成上述操作后,保存文件,按F5運(yùn)行,效果如圖6-1所示。(23)在“解決方案資源管理器”窗口中,通過(guò)右擊項(xiàng)目選擇快捷菜單“添加新項(xiàng)”命令添加一個(gè)Web窗體,命名為chatmain.aspx。(24)在頁(yè)面中添加一個(gè)4行1列的表格。在第1個(gè)單元格中輸入“在線聊天室”,并設(shè)置
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 區(qū)域獨(dú)家經(jīng)銷(xiāo)合同樣本
- 小學(xué)生漫畫(huà)課件
- 農(nóng)用薄膜在不同作物上的應(yīng)用考核試卷
- 體育經(jīng)紀(jì)人運(yùn)動(dòng)員經(jīng)紀(jì)人職業(yè)發(fā)展與轉(zhuǎn)型路徑考核試卷
- 建筑物清潔服務(wù)中的物聯(lián)網(wǎng)技術(shù)應(yīng)用考核試卷
- 期貨市場(chǎng)交易技能培訓(xùn)與模擬交易考核試卷
- 人工智能在電力系統(tǒng)中的電網(wǎng)智能化運(yùn)維考核試卷
- 有線電視傳輸網(wǎng)絡(luò)無(wú)線覆蓋與接入技術(shù)考核試卷
- 服裝生命周期管理考核試卷
- 信托與G網(wǎng)絡(luò)頻譜規(guī)劃實(shí)施策略考核試卷
- 2025年不停電電源(UPS)項(xiàng)目合作計(jì)劃書(shū)
- 2025年國(guó)家林業(yè)和草原局直屬事業(yè)單位第一批招聘應(yīng)屆畢業(yè)生96人歷年高頻重點(diǎn)模擬試卷提升(共500題附帶答案詳解)
- 2025年春季開(kāi)學(xué)典禮校長(zhǎng)講話稿-少年無(wú)畏凌云志扶搖直上入云蒼
- 2025寒假開(kāi)學(xué)第一課 課件【1】
- 2025年湖南食品藥品職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試近5年??及鎱⒖碱}庫(kù)含答案解析
- 碳酸鈣脫硫劑項(xiàng)目可行性研究報(bào)告立項(xiàng)申請(qǐng)報(bào)告模板
- 山東省泰安市新泰市2024-2025學(xué)年(五四學(xué)制)九年級(jí)上學(xué)期1月期末道德與法治試題(含答案)
- 1《北京的春節(jié)》課后練習(xí)(含答案)
- (完整版)陸河客家請(qǐng)神書(shū)
- 2024-2024年高考全國(guó)卷英語(yǔ)語(yǔ)法填空
- 會(huì)議會(huì)務(wù)服務(wù)投標(biāo)方案投標(biāo)文件(技術(shù)方案)
評(píng)論
0/150
提交評(píng)論