關(guān)于我們
書單推薦
新書推薦
|
ASP.NET實(shí)踐教程(第2版) 《ASP.NET實(shí)踐教程(第2版)》采用C#語言作為ASP.NET Web應(yīng)用程序的開發(fā)語言,以Visual Studio為開發(fā)平臺(tái),通過簡單實(shí)用的實(shí)例全面介紹使用ASP.NET進(jìn)行Web程序開發(fā)的常用技術(shù)。本書第1~7章主要介紹ASP.NET的基礎(chǔ)知識(shí)、ASP.NET的內(nèi)置對(duì)象、Web服務(wù)器控件、驗(yàn)證控件、網(wǎng)頁布局技術(shù)、Web數(shù)據(jù)庫編程基礎(chǔ)等內(nèi)容;第8~11章介紹網(wǎng)站設(shè)計(jì)中幾個(gè)常用的功能模塊,包括注冊登錄模塊、在線投票模塊、留言板模塊、文件上傳下載模塊等;第12章介紹一個(gè)綜合的ASP.NET應(yīng)用開發(fā)案例。 本書可作為高等院校計(jì)算機(jī)相關(guān)專業(yè)的教材,也可供具有一定編程經(jīng)驗(yàn)又需要迅速熟悉ASP.NET的讀者參考,同時(shí)也適合自學(xué)ASP.NET的讀者閱讀。 《ASP.NET實(shí)踐教程(第2版)》特點(diǎn) 1. 循序漸進(jìn),通俗易懂 本書所講的內(nèi)容避開了晦澀難懂的理論知識(shí),但又覆蓋了使用ASP.NET技術(shù)進(jìn)行Web編程所需要的各方面的基礎(chǔ)知識(shí),并從基本操作開始,循序漸進(jìn)地介紹了開發(fā)Web應(yīng)用程序需要用到的基本技術(shù)。采用通俗易懂的語言,一步一步、手把手地教會(huì)您各種技術(shù)的使用,宛如現(xiàn)場專家言傳身教。 2. 項(xiàng)目驅(qū)動(dòng),案例教學(xué) 本書不采用傳統(tǒng)的\"以概念解釋為主\"的方式,而采用\"以項(xiàng)目為驅(qū)動(dòng),實(shí)踐為主\"的方式描述完成每一個(gè)任務(wù)的方法和步驟。每一個(gè)任務(wù)的提出,都伴隨著一個(gè)完整的實(shí)例,讀者通過完成此實(shí)例,就能掌握相關(guān)的基本概念和技術(shù)。 3. 步驟詳細(xì),圖文并茂 本書在介紹ASP.NET的各項(xiàng)技術(shù)時(shí),采用了項(xiàng)目實(shí)踐的方式,且在講解中步驟詳細(xì),圖文并茂,讀者只需要根據(jù)步驟一步步操作,邊學(xué)邊練,就可以掌握相關(guān)的技能,并從中找到學(xué)習(xí)ASP.NET的樂趣。 4. 結(jié)構(gòu)合理,符合軟件技術(shù)專業(yè)人才培養(yǎng)目標(biāo) 作者在編寫此書時(shí)充分考慮了現(xiàn)代教育的特點(diǎn),旨在培養(yǎng)具有較高水平、較高素質(zhì)的技能型人才。本書結(jié)構(gòu)合理,能讓讀者輕松上手,快速掌握相關(guān)內(nèi)容,全面提高學(xué)、練、用的能力。 在結(jié)構(gòu)上,本書先用少量篇幅介紹了ASP.NET技術(shù)的語言基礎(chǔ),使讀者在學(xué)習(xí)ASP.NET技術(shù)之前對(duì)相關(guān)知識(shí)有所了解。 在介紹ASP.NET技術(shù)時(shí),作者并不急于解釋相關(guān)概念,而是將這些技術(shù)融入一個(gè)個(gè)小案例中,使讀者在實(shí)踐中進(jìn)行探索、分析和創(chuàng)新,從而掌握這些理論知識(shí)。同時(shí)介紹了目前網(wǎng)絡(luò)比較流行的幾個(gè)網(wǎng)站功能模塊,讀者只需要作少許的修改和擴(kuò)展,便可應(yīng)用于實(shí)際項(xiàng)目中。 前 言 一、關(guān)于ASP.NET ASP.NET是微軟公司推出的Web開發(fā)平臺(tái),是一種建立在公共語言運(yùn)行庫(Common Language Runtime,CLR)上的編程框架,可用于在服務(wù)器上開發(fā)功能強(qiáng)大的Web應(yīng)用程序。它是目前技術(shù)最先進(jìn)、特征最豐富、功能最強(qiáng)大的Web開發(fā)平臺(tái)之一。ASP.NET自推出以來,具有開發(fā)效率高、使用簡單快捷、管理更簡單、全新的語言支持、安全性高等特點(diǎn),是目前主流網(wǎng)絡(luò)編程技術(shù)之一。 ASP.NET中內(nèi)置了很多控件,在其他Web開發(fā)技術(shù)(如JSP)中需要費(fèi)盡心思才能完成的功能,在ASP.NET中只需要簡單地套用相應(yīng)的內(nèi)置控件即可完成。ASP.NET在數(shù)據(jù)庫連接方面做了很大的改進(jìn),新增的DataSource控件和GridView控件使得數(shù)據(jù)庫的操作更加簡捷方便。 二、本書結(jié)構(gòu) 本書在第1版的基礎(chǔ)上,進(jìn)行了如下改進(jìn):采用目前市場上較流行的開發(fā)工具版本,版本更高,提供的功能更多;增加了IIS(Internet Information Services,互聯(lián)網(wǎng)信息服務(wù))的安裝過程,以及網(wǎng)站的發(fā)布與部署;增加了DIV+CSS布局基礎(chǔ)知識(shí),使得頁面的設(shè)計(jì)更輕松、美觀;將第1版中第5章頁面結(jié)構(gòu)與配置文件的內(nèi)容分散到其他章節(jié),并刪除了一些冗余的段落和文字;在第1章至第6章中,增加了多個(gè)實(shí)戰(zhàn)案例,便于在學(xué)習(xí)基礎(chǔ)知識(shí)的同時(shí),掌握案例的設(shè)計(jì)與應(yīng)用;在第7章中,增加了程序的調(diào)試過程,使讀者能更清晰地看到各個(gè)數(shù)據(jù)的變化過程;補(bǔ)全了第12章中其他所有功能的設(shè)計(jì)與實(shí)現(xiàn),使之成為一個(gè)功能齊全的Web應(yīng)用程序;修正了第1版中部分程序源碼的筆誤,確保程序的正確性和可行性。 本書內(nèi)容由淺入深,首先介紹ASP.NET編程必須掌握的基本技術(shù),并安排了對(duì)該章知識(shí)點(diǎn)綜合應(yīng)用的實(shí)戰(zhàn)案例,非常適合初學(xué)者入門學(xué)習(xí);然后介紹實(shí)際開發(fā)中常用的模塊,這部分內(nèi)容適合初、中級(jí)讀者學(xué)習(xí)編程技術(shù);最后通過一個(gè)綜合實(shí)例講解實(shí)際項(xiàng)目的開發(fā)過程,其目的是快速提高讀者的實(shí)戰(zhàn)編程能力。 各章的主要內(nèi)容簡述如下。 第1章介紹網(wǎng)站發(fā)展歷史、.NET框架、Visual Studio開發(fā)環(huán)境、創(chuàng)建第一個(gè)ASP.NET程序、aspx文件和aspx.cs文件,以及發(fā)布和部署網(wǎng)站等內(nèi)容。 第2章介紹ASP.NET語言基礎(chǔ),包括C#語言基礎(chǔ)、XHTML標(biāo)記語言、CSS簡介、DIV+CSS布局等內(nèi)容。 第3章介紹ASP.NET內(nèi)置對(duì)象,包括Page對(duì)象、Response對(duì)象、Request對(duì)象、Server對(duì)象、Application對(duì)象、Session對(duì)象和Cookie對(duì)象等內(nèi)容。 第4章介紹Web服務(wù)器控件,包括基本控件、選擇控件、列表控件和高級(jí)控件等內(nèi)容。 第5章介紹驗(yàn)證控件的使用方法。 第6章介紹常用的網(wǎng)頁布局技術(shù),包括ASP.NET用戶控件、母版頁和內(nèi)容頁,以及導(dǎo)航控件等內(nèi)容。 第7章介紹Web數(shù)據(jù)庫編程基礎(chǔ),包括SQL語言,ADO.NET概述,Connection對(duì)象,Command對(duì)象,DataReader對(duì)象,DataAdapter對(duì)象,DataSet對(duì)象,插入、編輯、刪除數(shù)據(jù),數(shù)據(jù)綁定,數(shù)據(jù)控件,配置文件Web.config,以及程序調(diào)試等內(nèi)容。 第8章介紹開發(fā)Web應(yīng)用程序常用的模塊--注冊登錄模塊,并詳細(xì)介紹驗(yàn)證碼生成的過程。 第9章介紹開發(fā)Web應(yīng)用程序常用的模塊--在線投票模塊,并詳細(xì)介紹XML文檔的使用,以及以圖片形式顯示結(jié)果的過程。 第10章介紹開發(fā)Web應(yīng)用程序常用的模塊--留言板模塊,并詳細(xì)介紹留言板的制作過程,為后面論壇系統(tǒng)的制作奠定基礎(chǔ)。 第11章介紹開發(fā)Web應(yīng)用程序常用的模塊--文件上傳下載模塊,并詳細(xì)介紹數(shù)據(jù)庫保存圖片數(shù)據(jù)的過程。 第12章介紹使用Visual Studio與SQL Server設(shè)計(jì)一個(gè)完整的實(shí)例--BBS論壇系統(tǒng),詳細(xì)講解一個(gè)項(xiàng)目的開發(fā)過程,使讀者對(duì)Web應(yīng)用程序的開發(fā)有一個(gè)較系統(tǒng)的理解。 三、本書特點(diǎn) 1. 循序漸進(jìn),通俗易懂 本書所講的內(nèi)容避開了晦澀難懂的理論知識(shí),但又覆蓋了使用ASP.NET技術(shù)進(jìn)行Web編程所需要的各方面的基礎(chǔ)知識(shí),并從基本操作開始,循序漸進(jìn)地介紹了開發(fā)Web應(yīng)用程序需要用到的基本技術(shù)。采用通俗易懂的語言,一步一步、手把手地教會(huì)您各種技術(shù)的使用,宛如現(xiàn)場專家言傳身教。 2. 項(xiàng)目驅(qū)動(dòng),案例教學(xué) 本書不采用傳統(tǒng)的\"以概念解釋為主\"的方式,而采用\"以項(xiàng)目為驅(qū)動(dòng),實(shí)踐為主\"的方式描述完成每一個(gè)任務(wù)的方法和步驟。每一個(gè)任務(wù)的提出,都伴隨著一個(gè)完整的實(shí)例,讀者通過完成此實(shí)例,就能掌握相關(guān)的基本概念和技術(shù)。 3. 步驟詳細(xì),圖文并茂 本書在介紹ASP.NET的各項(xiàng)技術(shù)時(shí),采用了項(xiàng)目實(shí)踐的方式,且在講解中步驟詳細(xì),圖文并茂,讀者只需要根據(jù)步驟一步步操作,邊學(xué)邊練,就可以掌握相關(guān)的技能,并從中找到學(xué)習(xí)ASP.NET的樂趣。 4. 結(jié)構(gòu)合理,符合軟件技術(shù)專業(yè)人才培養(yǎng)目標(biāo) 作者在編寫此書時(shí)充分考慮了現(xiàn)代教育的特點(diǎn),旨在培養(yǎng)具有較高水平、較高素質(zhì)的技能型人才。本書結(jié)構(gòu)合理,能讓讀者輕松上手,快速掌握相關(guān)內(nèi)容,全面提高學(xué)、練、用的能力。 在結(jié)構(gòu)上,本書先用少量篇幅介紹了ASP.NET技術(shù)的語言基礎(chǔ),使讀者在學(xué)習(xí)ASP.NET技術(shù)之前對(duì)相關(guān)知識(shí)有所了解。 在介紹ASP.NET技術(shù)時(shí),作者并不急于解釋相關(guān)概念,而是將這些技術(shù)融入一個(gè)個(gè)小案例中,使讀者在實(shí)踐中進(jìn)行探索、分析和創(chuàng)新,從而掌握這些理論知識(shí)。同時(shí)介紹了目前網(wǎng)絡(luò)比較流行的幾個(gè)網(wǎng)站功能模塊,讀者只需要作少許的修改和擴(kuò)展,便可應(yīng)用于實(shí)際項(xiàng)目中。 通過對(duì)本書的閱讀,讀者應(yīng)能達(dá)到如下能力目標(biāo)。 (1) 對(duì)簡單網(wǎng)站進(jìn)行設(shè)計(jì)、編輯、調(diào)試、運(yùn)行的能力。 (2) 對(duì)ASP.NET各類控件的使用能力。 。3) 對(duì)網(wǎng)站數(shù)據(jù)庫進(jìn)行管理和維護(hù)的能力。 。4) 應(yīng)用所學(xué)知識(shí)開發(fā)三層架構(gòu)應(yīng)用程序的能力。 四、本書適用對(duì)象 本書可作為高等院校計(jì)算機(jī)相關(guān)專業(yè)的教材,也可供具有一定編程經(jīng)驗(yàn)又需要迅速熟悉ASP.NET的讀者參考,同時(shí)也適合自學(xué)ASP.NET的讀者閱讀。 本書由年輕而富有經(jīng)驗(yàn)的.NET軟件技術(shù)研究小組組織編寫,由魏菊霞任主編,李志中、謝云任副主編,相信本書能夠?yàn)樽x者順利進(jìn)入ASP.NET編程世界提供幫助。 本書的編寫得到了學(xué)院領(lǐng)導(dǎo)的大力支持,在此表示衷心的感謝。 盡管作者已經(jīng)盡了各種努力來保證語言和代碼中不出現(xiàn)錯(cuò)誤,但由于編寫時(shí)間倉促,水平有限,書中疏漏和不足之處在所難免,懇請(qǐng)各位讀者和專家批評(píng)指正,提出寶貴意見和建議。 編 者 第1章 新手入門 1 1.1 網(wǎng)站發(fā)展歷史 1 1.2 .NET框架 5 1.3 Visual Studio開發(fā)環(huán)境 6 1.4 創(chuàng)建第一個(gè)ASP.NET應(yīng)用程序 12 1.5 aspx文件和aspx.cs文件 16 1.6 發(fā)布和部署網(wǎng)站 20 小結(jié) 25 習(xí)題 25 第2章 ASP.NET語言基礎(chǔ) 27 2.1 C#語言基礎(chǔ) 27 2.2 XHTML標(biāo)記語言 38 2.3 CSS簡介 42 2.4 DIV+CSS布局 45 2.5 實(shí)戰(zhàn):猜數(shù)游戲 50 小結(jié) 59 習(xí)題 59 第3章 ASP.NET內(nèi)置對(duì)象 62 3.1 ASP.NET 內(nèi)置對(duì)象概述 62 3.2 Page對(duì)象 62 3.3 Response對(duì)象 67 3.4 Request對(duì)象 71 3.5 Server對(duì)象 76 3.6 Application對(duì)象 79 3.7 Session對(duì)象 81 3.8 Cookie對(duì)象 84 3.9 實(shí)戰(zhàn)1:統(tǒng)計(jì)網(wǎng)站在線人數(shù) 85 3.10 實(shí)戰(zhàn)2:用戶登錄 87 小結(jié) 90 習(xí)題 90 第4章 Web服務(wù)器控件 92 4.1 HTML標(biāo)記、HTML控件和 Web控件 92 4.2 HTML控件概述 94 4.3 Web控件概述 96 4.4 基本控件 97 4.5 選擇控件 100 4.6 列表控件 105 4.7 高級(jí)控件 110 4.8 實(shí)戰(zhàn):用戶注冊頁面 121 小結(jié) 129 習(xí)題 129 第5章 驗(yàn)證控件 131 5.1 驗(yàn)證控件概述 131 5.2 RequiredFieldValidator控件的功能 和使用 132 5.3 CompareValidator控件的功能 和使用 134 5.4 RangeValidator控件的功能 和使用 136 5.5 RegularExpressionValidator控件的 功能和使用 138 5.6 CustomValidator控件的功能 和使用 140 5.7 ValidatorSummary控件的功能 和使用 141 小結(jié) 143 習(xí)題 143 第6章 網(wǎng)頁布局技術(shù) 145 6.1 ASP.NET用戶控件 145 6.2 母版頁和內(nèi)容頁 150 6.3 導(dǎo)航控件 154 小結(jié) 157 習(xí)題 157 第7章 Web數(shù)據(jù)庫編程基礎(chǔ) 159 7.1 SQL語言 159 7.2 ADO.NET概述 164 7.3 Connection對(duì)象 165 7.4 Command對(duì)象 167 7.5 DataReader對(duì)象 168 7.6 DataAdapter對(duì)象和DataSet對(duì)象 171 7.7 插入、編輯和刪除數(shù)據(jù) 175 7.8 數(shù)據(jù)綁定 182 7.9 數(shù)據(jù)控件 184 7.10 配置文件Web.config 206 7.11 程序調(diào)試 209 小結(jié) 212 習(xí)題 212 第8章 注冊登錄模塊 214 8.1 設(shè)計(jì)思想 214 8.2 ASP.NET的圖像處理 215 8.3 注冊登錄模塊的實(shí)現(xiàn)過程 218 小結(jié) 234 習(xí)題 234 第9章 在線投票模塊 236 9.1 XML文檔 236 9.2 在線投票模塊設(shè)計(jì)思想 245 9.3 在線投票模塊的實(shí)現(xiàn) 245 小結(jié) 252 習(xí)題 252 第10章 留言板模塊 254 10.1 留言板模塊設(shè)計(jì)思想 254 10.2 數(shù)據(jù)庫設(shè)計(jì) 255 10.3 留言板模塊的實(shí)現(xiàn) 256 小結(jié) 277 習(xí)題 277 第11章 文件上傳下載模塊 279 11.1 文件上傳下載的設(shè)計(jì)思想 279 11.2 設(shè)計(jì)前的準(zhǔn)備 280 11.3 上傳文件至服務(wù)器 282 11.4 從服務(wù)器下載文件 285 11.5 上傳圖片至數(shù)據(jù)庫 287 小結(jié) 296 習(xí)題 296 第12章 BBS論壇系統(tǒng) 298 12.1 設(shè)計(jì)思路 298 12.2 設(shè)計(jì)前的準(zhǔn)備 299 12.3 數(shù)據(jù)庫設(shè)計(jì) 303 12.4 設(shè)計(jì)實(shí)體(Model)層 305 12.5 設(shè)計(jì)數(shù)據(jù)訪問(DAL)層 311 12.6 設(shè)計(jì)業(yè)務(wù)邏輯(BLL)層 331 12.7 主要功能界面(Web UI層)的實(shí)現(xiàn) 333 小結(jié) 365 習(xí)題 365 參考文獻(xiàn) 367 第3章 ASP.NET內(nèi)置對(duì)象 本章將詳細(xì)介紹ASP.NET的常用內(nèi)置對(duì)象,主要包括Page對(duì)象、Response對(duì)象、Request對(duì)象、Server對(duì)象、Application對(duì)象等。這些對(duì)象是用.NET框架中封裝好的類來實(shí)現(xiàn)的,在ASP.NET頁面初始化時(shí),這些對(duì)象就已經(jīng)自動(dòng)創(chuàng)建了,故在程序中可以直接使用,不需要再實(shí)例化。這些內(nèi)置對(duì)象為Web編程提供了豐富的功能,本章將重點(diǎn)介紹這些內(nèi)置對(duì)象的主要用途和使用方法。 本章學(xué)習(xí)目標(biāo): * 了解ASP.NET內(nèi)置對(duì)象的種類。 * 掌握各種內(nèi)置對(duì)象的屬性和方法,以及在實(shí)際編程中的主要用途。 3.1 ASP.NET 內(nèi)置對(duì)象概述 ASP.NET包括Page、Response、Request、Application、Server、Session、Cookies 等多個(gè)內(nèi)置對(duì)象,每個(gè)對(duì)象都有自己的屬性、方法和事件。 下面簡單介紹這些內(nèi)置對(duì)象的功能,如表3-1所示。 表3-1 ASP.NET的內(nèi)置對(duì)象及其功能 對(duì) 象 名 功能說明 Page對(duì)象 用來設(shè)置與網(wǎng)頁有關(guān)的屬性、方法和事件 Response對(duì)象 用來向?yàn)g覽器或客戶端輸出信息 Request對(duì)象 用來獲取從瀏覽器或客戶端返回的信息 Application對(duì)象 用來共享多個(gè)用戶的全局信息 Server對(duì)象 用來提供服務(wù)器端的一些屬性和方法 Session對(duì)象 用來存儲(chǔ)某些特定用戶的共享信息 Cookies對(duì)象 用來設(shè)置或獲取Cookie信息 3.2 Page 對(duì) 象 Page對(duì)象是由System.Web.UI命名空間中的Page類來實(shí)現(xiàn)的,當(dāng)瀏覽器訪問Web頁面時(shí),Web頁面被編譯成Page對(duì)象,緩存在服務(wù)器內(nèi)存中。Page對(duì)象用來設(shè)置與當(dāng)前網(wǎng)頁有關(guān)的屬性、方法和事件。其常用的屬性、方法和事件如表3-2所示。 表3-2 Page對(duì)象常用的屬性、方法和事件 名 稱 功能說明 IsPostBack屬性 獲取一個(gè)值,該值用來判斷該頁是否是第一次被加載 IsVaid 屬性 獲取一個(gè)值,該值用來判斷該頁是否通過驗(yàn)證 Validators屬性 獲取請(qǐng)求的網(wǎng)頁所包含的全部驗(yàn)證控件集合 DataBind方法 將數(shù)據(jù)源綁定到指定的服務(wù)器控件 Dispose方法 強(qiáng)制服務(wù)器控件在內(nèi)存釋放之前執(zhí)行清理操作 FindControl方法 在頁面上搜索指定的服務(wù)器控件 Init事件 設(shè)置頁面或控件的初始值 Load事件 網(wǎng)頁被加載時(shí)發(fā)生 Unload事件 關(guān)閉文件、釋放對(duì)象等時(shí)觸發(fā) 3.2.1 IsPostBack屬性 IsPostBack屬性經(jīng)常用來判斷網(wǎng)頁是否是第一次訪問,當(dāng)獲取的值為false時(shí),表示當(dāng)前頁是首次加載或訪問;當(dāng)該值為true時(shí)則不是。從下面的【例3-1】中可以看出IsPostBack屬性的用途。 3.2.2 Init事件 Init事件用來設(shè)置頁面或控件的初始值,當(dāng)ASP.NET頁面第一次被訪問時(shí),將觸發(fā)Page對(duì)象的Init事件,對(duì)應(yīng)的事件處理方法為Page_Init(),同一個(gè)頁面只會(huì)被觸發(fā)一次Init事件。 3.2.3 Load事件 Load事件又稱加載或載入事件,當(dāng)對(duì)象的相關(guān)數(shù)據(jù)裝載到內(nèi)存中時(shí)觸發(fā)該事件。即當(dāng)頁面被加載時(shí),就會(huì)觸發(fā)Page對(duì)象的Load事件。Load事件也可用來設(shè)置頁面或者控件的初始值,它與Init事件的主要區(qū)別在于:每次加載該頁面時(shí),都會(huì)觸發(fā)其Load事件,因此一個(gè)頁面的Load事件可能被觸發(fā)多次,而Init事件只會(huì)在頁面第一次被訪問時(shí)觸發(fā)一次。 下面通過一個(gè)實(shí)例來介紹Page對(duì)象的這些屬性和事件的用途。 【例3-1】 設(shè)計(jì)一個(gè)下拉列表框(由DropDownList控件實(shí)現(xiàn)),下拉列表框中有一些可選的城市,當(dāng)單擊【提交】按鈕時(shí),將向下拉列表框中添加用戶輸入的城市。具體操作步驟如下。 (1) 打開Visual Studio開發(fā)工具, 新建一個(gè)網(wǎng)站ch03,在解決方案資源管理器中,右擊站點(diǎn)文件,在彈出的快捷菜單中選擇【添加新項(xiàng)】命令,添加一個(gè)新的Web窗體,命名為eg03_1.aspx。 。2) 打開【設(shè)計(jì)】窗口,在【表】菜單中選擇【插入表】命令,在【插入表格】對(duì)話框中設(shè)置行數(shù)、列數(shù)等參數(shù),設(shè)置好參數(shù)后,單擊【確定】按鈕添加一個(gè)3行2列的表格,如圖3-1所示。 圖3-1 設(shè)置插入表格參數(shù) (3) 選中表格的第一行,單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇【修改】|【合并單元格】命令,并輸入\"輸入要添加的城市:\",打開工具箱,在表格的第二行添加1個(gè)TextBox控件、1個(gè)Button按鈕,第三行添加1個(gè)DropDownList控件,各控件的id屬性為默認(rèn)值,設(shè)計(jì)界面如圖3-2所示(本章節(jié)添加的所有控件的具體內(nèi)容將在第4章中進(jìn)行介紹)。 圖3-2 設(shè)計(jì)界面 。4) 雙擊eg3_1.aspx頁面的空白位置,打開eg3_1.aspx.cs文件,在Page對(duì)象的Load事件中添加的處理代碼如下。 protected void Page_Load(object sender, EventArgs e) { //往下拉列表框中添加值 DropDownList1.Items.Add(\"廣州\"); DropDownList1.Items.Add(\"佛山\"); DropDownList1.Items.Add(\"深圳\"); DropDownList1.Items.Add(\"東莞\"); } 這段代碼表示當(dāng)頁面第一次被加載時(shí),下拉列表框中將添加4個(gè)選項(xiàng),分別是\"廣州\"\"佛山\"\"深圳\"\"東莞\"。 。5) 切換到設(shè)計(jì)頁面eg3_1.aspx,雙擊【添加】按鈕,添加Click事件的處理代碼如下。 protected void Button1_Click(object sender, EventArgs e) { //將輸入文本框的值添加到下拉列表框中 DropDownList1.Items.Add(TextBox1.Text); } (6) 保存文件,運(yùn)行程序,進(jìn)入如圖3-3所示的界面。 圖3-3 運(yùn)行界面(1) 。7) 在輸入文本框中輸入要添加的城市,如\"湛江\",單擊【添加】按鈕。查看下拉列表框中的選項(xiàng),發(fā)現(xiàn)除了剛才添加的城市\(zhòng)"湛江\"外,之前的4個(gè)選項(xiàng)又重復(fù)添加了一次,如圖3-4所示。 圖3-4 運(yùn)行界面(2) 這是因?yàn)楫?dāng)Web頁面第一次執(zhí)行時(shí),觸發(fā)了Page對(duì)象的Load事件,給下拉列表框添加了4個(gè)選項(xiàng),當(dāng)單擊【提交】按鈕時(shí),Page對(duì)象的Load事件被再次觸發(fā),所以又重復(fù)地添加了這4個(gè)選項(xiàng)。 解決這個(gè)問題的方法一:在Page對(duì)象的Load()事件中,用IsPostBack屬性來判斷Web頁面是否是第一次被加載,修改后的代碼如下。 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //往下拉列表框中添加值 DropDownList1.Items.Add(\"廣州\"); DropDownList1.Items.Add(\"佛山\"); DropDownList1.Items.Add(\"深圳\"); DropDownList1.Items.Add(\"東莞\"); } } 解決這個(gè)問題的方法二:將Load事件改為Init事件,問題也可以得到解決,因?yàn)镮nit事件對(duì)同一頁面在初始化時(shí)只觸發(fā)一次,當(dāng)單擊【添加】按鈕時(shí),Init事件將不再被觸發(fā)。 ……
你還可能感興趣
我要評(píng)論
|