




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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)
通過本章知識(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)頁面?zhèn)髦岛驼{(diào)用對(duì)象的方法。掌握Session對(duì)象在頁面之間實(shí)現(xiàn)傳值功能的方法。了解Application對(duì)象,以及其使用方法。了解Cookie對(duì)象,以及其使用方法。6.1情景分析
用戶在使用網(wǎng)站過程中,時(shí)常會(huì)見到會(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)跨頁面?zhèn)鬟f呢?
網(wǎng)絡(luò)上的聊天室相信大家并不陌生,用戶首先通過聊天室登錄,進(jìn)入聊天室聊天。為了便于聊天室的管理,我們要對(duì)聊天室用戶進(jìn)行身份驗(yà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所示。
在聊天室中,在線用戶可以通過Application對(duì)象實(shí)現(xiàn)相互聊天,用戶發(fā)表的內(nèi)容會(huì)同步顯示到頁面上,效果如圖6-2所示。6.2ASP.NET常用對(duì)象ASP.NET提供了多種內(nèi)置對(duì)象,這些對(duì)象可以在頁面上以及頁面之間方便地實(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類實(shí)現(xiàn),它主要用于處理ASP.NET頁面的內(nèi)容。IsPostBack是Page對(duì)象最為重要的屬性,它返回一個(gè)布爾類型的值(True/False),用于判斷頁面是第一次加載,還是為響應(yīng)客戶端回發(fā)而加載。名稱說
明IsPostBack屬性用于判斷頁面是否是第一次被加載。當(dāng)頁面是第一次加載時(shí),IsPostBack屬性值為False;否則值為TrueIsValid屬性用于判斷頁面驗(yàn)證是否成功Load事件頁面加載時(shí)激活該事件Unload事件頁面從內(nèi)存中卸載時(shí)激活事件【例6-1】設(shè)計(jì)動(dòng)態(tài)添加候選項(xiàng)的頁面。當(dāng)頁面初次加載時(shí),“個(gè)人愛好”顯示“游泳”、“唱歌”和“爬山”三個(gè)選項(xiàng),下面的文本框里顯示“請(qǐng)輸入新的選項(xiàng)”。用戶在文本框中輸入選項(xiàng)內(nèi)容,并單擊“添加”按鈕,可以實(shí)現(xiàn)選項(xiàng)的添加,效果如圖6-3所示。(Ex6-1.aspx)<div>
個(gè)人愛好:<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類實(shí)現(xiàn),主要用于控制對(duì)瀏覽器的輸出。它允許將數(shù)據(jù)作為請(qǐng)求的結(jié)果發(fā)送到瀏覽器中,并提供有關(guān)響應(yīng)的信息。它可以用來在頁面中輸入數(shù)據(jù),在頁面中跳轉(zhuǎn),還可以傳遞各個(gè)頁面的參數(shù)。名稱說
明Buffer屬性設(shè)置是否緩沖輸出,取值為True或False,默認(rèn)為TrueContentType屬性控制輸出的文件類型Cookies屬性獲取響應(yīng)Cookie集合Write方法Response對(duì)象最常用的方法,用于輸出信息到客戶端Redirect方法將客戶端重定向到新的URLClear方法清除緩沖區(qū)流中的所有內(nèi)容輸出End方法將當(dāng)前所有緩沖的輸出發(fā)送到客戶端,停止該頁的執(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)頁面地址重定向,效果如圖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類實(shí)現(xiàn),主要用于獲取客戶端信息。當(dāng)用戶打開Web瀏覽器并從網(wǎng)站請(qǐng)求Web頁時(shí),Web服務(wù)器就接收一個(gè)HTTP請(qǐng)求,此請(qǐng)求包含用戶、用戶的計(jì)算機(jī)、頁面以及瀏覽器的相關(guān)信息,這些信息將被完整地封裝,并通過Request對(duì)象得以使用。名稱說
明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)求保存到硬盤1.ServerVariables和Browser屬性Request對(duì)象的ServerVariables屬性和Browser屬性,分別用于獲取服務(wù)器環(huán)境和客戶端瀏覽器相關(guān)信息內(nèi)容。它們的語法格式分別為Request.ServerVariables["環(huán)境變量名稱"]和Request.Browser["瀏覽器屬性名稱"]?!纠?-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屬性來獲取Web窗體中控件或變量的值。語法為:Request.Form[“控件名或變量名”],語法也可以簡(jiǎn)寫為:Request[“控件名或變量名”]?!纠?-4】利用Request對(duì)象的Form屬性實(shí)現(xiàn)頁面間信息傳遞。即將頁面Ex6-4.aspx中的用戶名和密碼傳送到第二個(gè)頁面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屬性傳遞了用戶信息,屬于頁面間參數(shù)傳遞的隱式傳遞,即post方法。除此之外,還可以使用get方法顯式傳遞參數(shù)。
使用get方法時(shí),需要使用QueryString屬性來獲取標(biāo)識(shí)在URL后面的所有返回的變量及值,使用方法為:Request.QueryString[“變量名稱”]。例如,當(dāng)客戶端URL發(fā)出“http://news.aspx?nid=12&nkey=公司”請(qǐng)求時(shí),利用QueryString屬性就會(huì)獲取nid和nkey兩個(gè)變量的值?!纠?-5】利用Request對(duì)象的QueryString屬性實(shí)現(xiàn)頁面間信息傳遞。單擊頁面Ex6-5.aspx中的超鏈接,將頁面轉(zhuǎn)到Ex6-5(2).aspx,并獲取Ex6-5.aspx顯式傳遞過來的兩個(gè)變量的值,效果如圖6-7所示。(Ex6-5.aspx和Ex6-5(2).aspx)<ahref="Ex6-5(2).aspx?name=張明明&key=zmm123">轉(zhuǎn)到下一個(gè)頁面</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類實(shí)現(xiàn),主要用于記載特定用戶信息。用戶對(duì)頁面進(jìn)行訪問時(shí),ASP.NET應(yīng)用程序會(huì)為每一個(gè)用戶分配一個(gè)Session對(duì)象,即不同用戶擁有各自不同的Session對(duì)象。由于Session對(duì)象可以在網(wǎng)站的任意一個(gè)頁面進(jìn)行訪問,所以常用于存儲(chǔ)需要跨頁面使用的信息。名稱說
明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è)頁面中,用戶輸入用戶名和密碼,點(diǎn)擊“后臺(tái)管理”按鈕后,將用戶名和密碼信息保存至Session對(duì)象中。在第二個(gè)頁面中先利用Session[“user”]來判斷用戶是否已登錄,若登錄則出現(xiàn)“用戶注銷”按鈕;否則出現(xiàn)無權(quán)訪問的提示。同時(shí),單擊“用戶注銷”按鈕實(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">返回上一頁</asp:HyperLink><asp:ButtonID="btnquit"runat="server"onclick="btnquit_Click"Text="用戶注銷"
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="你無權(quán)進(jìn)入后臺(tái)管理!6秒后自動(dòng)返回上頁。<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類實(shí)現(xiàn),主要用于存儲(chǔ)網(wǎng)站的共享信息。與Session對(duì)象存儲(chǔ)信息的方式類似,Application對(duì)象也是將用戶信息存儲(chǔ)在服務(wù)器中。兩者的不同在于:Application對(duì)象是一個(gè)公用變量,允許應(yīng)用程序的所有用戶使用;而Session對(duì)象只允許某個(gè)特定的用戶使用。Application對(duì)象的生命周期止于網(wǎng)站IIS關(guān)閉或者Clear()方法清除;而Session對(duì)象的生命周期上于用戶頁面的關(guān)閉或者Abandon()方法清除。
由于多個(gè)用戶可以共享一個(gè)Application對(duì)象,為了保證用戶在修改Application對(duì)象值時(shí)的資源同步訪問,需要使用Application對(duì)象的Lock和Unlock方法進(jìn)行對(duì)象的加鎖和解鎖?!纠?-7】使用Application對(duì)象實(shí)現(xiàn)網(wǎng)站訪問數(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類實(shí)現(xiàn),主要用于客戶端存儲(chǔ)用戶個(gè)人信息。Cookie對(duì)象與Session、Application對(duì)象類似,是一種集合對(duì)象,都是用于保存數(shù)據(jù)。
Cookie對(duì)象不隸屬于Page對(duì)象,分別屬于Request和Response對(duì)象,每一個(gè)Cookie變量都由Cookies對(duì)象所管理。要保存一個(gè)Cookie變量,需要通過Response對(duì)象的Cookies集合,具體語法為:Response.Cookies["變量名"].Value=值;
讀取Cookie對(duì)象時(shí),需要使用Request對(duì)象,具體語法為:
變量
=Request.Cookies["變量名"].Value;名稱說
明Name屬性獲取Cookie變量的名稱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="寫入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é)通過運(yùn)用Session、Application和Cookie等ASP.NET對(duì)象知識(shí),實(shí)現(xiàn)在線聊天室的開發(fā)。1.數(shù)據(jù)庫(kù)表設(shè)計(jì)(1)啟動(dòng)Access數(shù)據(jù)庫(kù),新建數(shù)據(jù)庫(kù),命名為mychat.mdb。(2)通過“新建表”命令,創(chuàng)建用戶信息表chatmem。表中字段有用戶編號(hào)mid(自動(dòng)編號(hào)),昵稱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)文件夾。如果不存在,用戶可以通過右擊項(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。如果不存在,用戶可以通過右擊項(xiàng)目,選擇快捷菜單“添加新項(xiàng)”命令。在“添加新項(xiàng)”窗口中選擇“Web配置文件”模板,并將文件命名為Web.config,單擊“添加”按鈕。(7)在“解決方案資源管理器”窗口中,雙擊打開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)用程序類”模板,并將文件命名為Global.asax,單擊“添加”按鈕。(9)在“解決方案資源管理器”窗口中,雙擊打開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)在“解決方案資源管理器”窗口中,通過右擊項(xiàng)目選擇快捷菜單“添加新項(xiàng)”命令添加一個(gè)Web窗體,命名為chatlogin.aspx。(13)在頁面中添加一個(gè)6行2列的表格,在表格中的第1、2、5和6行單元格進(jìn)行合并。在第1行單元格中輸入“聊天室登錄”,并設(shè)置單元格格式。(14)在第2行單元格中輸入“歡迎訪問聊天室,當(dāng)前在線人數(shù):”,并在文本后添加1個(gè)Label控件,設(shè)置ID屬性為“l(fā)blnum”。(15)在第3行左側(cè)單元格中輸入“昵稱:”;右側(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)雙擊頁面空白處,打開,輸入以下代碼: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)在“解決方案資源管理器”窗口中,通過右擊項(xiàng)目選擇快捷菜單“添加新項(xiàng)”命令添加一個(gè)Web窗體,命名為chatmain.aspx。(24)在頁面中添加一個(gè)4行1列的表格。在第1個(gè)單元格中輸入“在線聊天室”,并設(shè)置
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CCS 028-2023基于地理信息系統(tǒng)的工作面截割模板自動(dòng)生成系統(tǒng)技術(shù)要求
- T/CCMA 0115-2021塔式起重機(jī)使用說明書編寫導(dǎo)則
- T/CCMA 0090-2020綠色設(shè)計(jì)產(chǎn)品評(píng)價(jià)技術(shù)規(guī)范混凝土泵車
- T/CAQI 69-2019管道直飲水系統(tǒng)技術(shù)要求
- T/CAPEC 1-2018電站鍋爐制造監(jiān)理技術(shù)要求
- T/CAPE 13003-2024民用建筑裝配式通風(fēng)系統(tǒng)工程技術(shù)規(guī)程
- T/CAME 61-2023通倉(cāng)交融手術(shù)室建設(shè)指南
- 大運(yùn)會(huì)保安考試題及答案
- 檢驗(yàn)招考試題及答案
- 干部交流面試題及答案
- 新疆生產(chǎn)建設(shè)兵團(tuán)2025屆七年級(jí)數(shù)學(xué)第二學(xué)期期末監(jiān)測(cè)模擬試題含解析
- 股權(quán)轉(zhuǎn)讓解除協(xié)議書
- 幼兒園桌椅安全教育
- 2025-2031年中國(guó)醫(yī)學(xué)檢驗(yàn)市場(chǎng)深度分析及行業(yè)前景展望報(bào)告
- 醫(yī)院培訓(xùn)課件:《中華人民共和國(guó)母嬰保健法》
- 佛山市普通高中2025年高三第二次診斷性檢測(cè)生物試卷含解析
- 道路竣工測(cè)量重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 山東省濟(jì)寧市任城區(qū)2023年中考一模化學(xué)試題(含答案)
- 《相控陣?yán)走_(dá)技術(shù)與應(yīng)用》課件
- 人教版(2024)七年級(jí)下冊(cè)生物期末復(fù)習(xí)知識(shí)點(diǎn)背誦提綱
- 國(guó)開電大軟件工程形考作業(yè)3參考答案 (一)
評(píng)論
0/150
提交評(píng)論