【文章內(nèi)容簡介】
頁寫程序編寫。 它是 頁面的默認語言。雖然你在這一本書中一直用 Visual Basic, 但是,你也需要了解用其它的支持公共語言庫的語言創(chuàng)建 。除此之外,這包括 C, C++ 。 提示 : 本 書所含的光碟包含 C 源代碼。 除微軟之外的公司產(chǎn)生的幾十 個其他的語言已經(jīng)能夠和 .NET framework兼容 。 這些其他的語言的一些例子包括 Python、 SmallTalk 、 Eiffel和 COBOL。這就意味著假如你真的想 , 你可以使用 COBOL 寫 頁面。 不管你使用什么語言開發(fā) 頁面,你需要明白 ,這就意味著 。 你第一次請求 頁面 , 頁面被編譯成一個 .NET類 , 這個類文件被保存在一 個特殊的目錄下這個目錄的名字叫 Temporary Files。對于一個 信類文件出現(xiàn)在 Temporary Files目錄下。以后不管任何時候你請求那個同樣的,那個通信類文件就會執(zhí)行。 當 頁面被編譯的時候,它沒被直接地被編譯成機器碼而是被編譯成了一個中間語言,名字叫 (MSIL)所有 .NET可用的語言都被編譯成這種中間語言。 一個 頁面不會被編譯成本地機器碼直到它被一個瀏覽器訪問,在那個時間點包含在 Temporary Files目錄下的類文件用 JIT編譯器編譯并且執(zhí)行。 這些迷惑的方面體現(xiàn)在整 個過程都在后臺運行,你必須要做的是用資源代碼為你的。 .NET framework 為你處理完轉(zhuǎn)換它為編譯碼這一困難工作。 典型 ASP提示 : VBScript 怎么樣呢 ? 在 之前, VBScript 是開發(fā)動態(tài)頁面最流行的語言。 不支持 VBScript ,而且這是好消息。 Visual Basic 是一個 VBScript 的超集 ,意味著 Visual Basic 相對于 VBScript有更多的功能。 因此 , 你用 Visual Basic 有更豐富的函數(shù)和語句供你使用。 此外,不像 VBScript , Visual Basic 是一種被編譯的語言。 這意味著如果你使用 Visual Basic 重寫相同的 VBScript代碼感覺會更容易一些。 假如你過去只用 VBScript而不用 Visual Basic,也不用擔心。 因為 VBScript 如此接近 Visual Basic, 你將會發(fā)現(xiàn)在這二種語言之間的轉(zhuǎn)變是很容易的。 提示 : 在 .NET framework中, 微軟包括一個名叫 IL Disassembler的有趣的工具。在臨時的 類的代碼。 它列出了類的所有方法和屬性使你能夠瀏覽中間代碼。 正如在這章討論的這個工具也可以用于操作 。 舉例來說,你能使用 IL Disassembler 瀏覽 TextBox 控件的中間代碼。 (位于在一個叫做 的文件中 ) 介紹 控件 控件為你的 Web應用程 序提供動態(tài)和交互的用戶接口。這些控件能夠使你的網(wǎng)站的使用者看見和交互。 舉例來說,你能使用控件建立 HTML 窗體元素,交互式日歷 , 而且可以滾動標題廣告。 控件和 HTML 內(nèi)容共存。 典型地,你用通常的 HTML 創(chuàng)建你的網(wǎng)頁的靜態(tài)區(qū)域和用 控件創(chuàng)建網(wǎng)頁的動態(tài)區(qū)域。 了解 控件是怎么工作的?最好的方法是看一個簡單的 Web應用窗體頁面。 添加 第二個難點就是 ,他是確切的頁面的程序代碼 ,在你添加的程序用戶處理控件 也頁面事件。 如果一個使用者單擊 HTML窗體中的 Button按鈕, 舉例來說,那個按鈕就會響應一個事件 (單擊事件 ) 。 典型地,你想添加代碼響應這個事件到頁面中。 舉例來說,當某人單擊 Button按鈕控件的時候,你可以保存窗體數(shù)據(jù)到一個文件或者數(shù)據(jù)庫。 控件不是唯一的能相應事件的事物。 當它被請求的時候一個 頁面每次都能夠響應幾個事件。 舉例來說,每當你請求一個頁面,頁面的初始化事件就會被觸發(fā)。 每當初始化事件發(fā)生的時候,你能夠添加代碼到頁面中來執(zhí)行。 2. 用 Web服務器控件創(chuàng)建窗體 構(gòu) 建靈活窗體 你用幾個基本 Web控件來代替標準的 HTML 窗體元素,例如 radio buttons、 text boxes, and list boxes. 你能夠用這些控件為你的 Web應用程序在你的 面。 下面的部分為這些 Web控件提供了詳細的提綱和程序源代碼。 控制頁面瀏覽 在下列的部分中,你學會如何控制一個用戶從一個 。首先,你學會怎么把一個 HTML窗體鏈接到另一個頁面來獲取信息。 下一步,你學會用Redirect()方法自動讓一個用戶瀏覽一個新 的頁面 。 最后,你學會用超級鏈接控件怎么把頁面連在一起。 對控件應用格式 在下列的部分中,你學會該如何創(chuàng)建更有吸引力的 Web窗體。 首先,你瀏覽一下針對所有 Web控件格式屬性他們是基本控件類的格式屬性。 然后,你學會在 Web控件上應用樣式表風格。 3. 用驗證控件做頁面驗證 使用客戶端驗證 傳統(tǒng)地,當增加驗證到他們的頁面中時,他們會面臨一個嚴峻的選擇。 你可以添加窗體頁面驗證規(guī)則到你的服務器端代碼,或者是添加驗證規(guī)則到你的客戶端代碼。 寫驗證代碼到客戶端代碼中的優(yōu)勢能夠及時反饋到你的用戶。 舉例來說,一個 使用者忽略在一個要求檢驗的字段中輸入一個值,你能夠及時的顯示一個錯誤信息而不需要返回到服務器端解決。 人們喜歡客戶端的驗證。 它看起來很棒而且產(chǎn)生一種比較好的效果。 然而,問題是它不與所有的瀏覽器兼容。 不是所有的瀏覽器支持 JavaScript、不同版本的瀏覽器的不同版本支持 JavaScript,所以客戶端驗證沒有保障。 由于這個原因,許多開發(fā)者在過去決定添加自定義驗證到服務器端。因為服務器端代碼能夠和任何瀏覽器協(xié)同工作。就這樣的做法更有安全的保障。 幸運地,正如在章節(jié)討論的這些驗證控件不會強迫你做困難 的選擇。 這些驗證控件會自動地產(chǎn)生客戶端代碼和服務器端代碼。 如果一個瀏覽器有能力支持 JavaScript ,客戶端的驗證腳本將會自動返回到瀏覽器。 如果一個瀏覽器不支持 JavaScript,那個驗證規(guī)則會自動在服務器端代碼中執(zhí)行。 然而你需要注意的是,客戶端的驗證僅僅能夠工作在 。 尤其,正如這一章討論的客戶端腳本不可能在任意本本的瀏覽器中運行。 控制字段 : RequiredFieldValidator 控件 你用這個控件來檢查在一個 Web窗體中是否為空, 典型地,你和 TextBox 控件一起使用這個控件。 然而,這個控件也可以用在其他的輸入型控件,例如: RadioButtonList.控件 。 驗證表達式 : RegularExpressionValidator 控件 你能使用 RegularExpressionValidator 控件來驗證輸入的值是否和定義的正則表達式相匹配。 例如:你能使用這控件來檢查一個用戶是否輸入一個合法的電子郵件地址,電話號碼,用戶名或密碼。怎樣用一個正則表達式來完成這些驗證任務將會在下面的例子中一一列出。 比較值 : CompareValidator 控件 這個 CompareValidator 控件用于比較一個輸入的數(shù)據(jù)和另外一個值是否相同。另外一個值可能是固定值,例如:一個特定的數(shù)字或者是輸入到另一個控件中的一個值。 總結(jié)錯誤 : ValidationSummary 控件 假想一個頁面有 50個字段假如你僅僅用上部分討論的那些驗證控件來顯示錯誤看見一個錯誤在頁面中將是很難的。 例如:你可能需要滾動到第 48個頁面字段來找到這個錯誤信息。 幸好,微軟除了包含上面提到的控件還包括 ValidationSummary 控件。 你能用這控件綜合所有的錯誤信息在一 個頁面的上端或者你想要的任何一個地方。 4. 先進的控件編程 保存瀏覽狀態(tài) 默認地,幾乎所有的 控件都會在先前的窗體中保留他們的屬性值。 舉例來說,如果你輸入文本到一個 Lebel標簽上然后提交那個頁面,當那個頁面再次被訪問那個Lebel標簽的內(nèi)容將會被保存下來。 瀏覽狀態(tài)的妙處是它不依賴任何的特定服務器或瀏覽器的屬性。 尤其,它不依賴cookies, session變量 、或應用程序變量。 瀏覽狀態(tài)在一個名叫做 VIEWSTATE的隱藏頁面中執(zhí)行,這個隱藏頁面自動創(chuàng)建 每個 Web窗體。 當靈活的 應用時 , 瀏覽狀態(tài)能夠在你的網(wǎng)站中產(chǎn)生藝術性的和積極的效果,例如:如果你在一個支持瀏覽狀態(tài)的控件中顯示數(shù)據(jù)庫數(shù)據(jù),你不需要每次都返回到需要反饋到服務器的數(shù)據(jù)庫頁面。 你能夠自動地保存頁面里的數(shù)據(jù)狀態(tài)。 顯示和隱藏內(nèi)容 假想你正在用一個可選擇的部分創(chuàng)造頁面。 舉例來說,假想你正在創(chuàng)造一種在線納稅系統(tǒng),而且你想要顯示或者隱藏一個包含適用于已婚的稅文件編檔員的問題的部分。 或者 , 假想你想要添加一個幫助按鈕到網(wǎng)站上去。 你可能想要隱藏或者顯示完成依靠用戶參考的問題的詳細說明。 最后,假想你想要把一個 tax form 變成很多頁面,以便一個人每次只看那個 tax form的一部分。 在下列的部分中,你學會用屬性設置在一個窗體中來隱藏或顯示控件。 你學會用單個控件和一組控件設置 Visible and Enabled屬性來隱藏和顯示頁面內(nèi)容 。 使用 Visible and Enabled屬性 每個控件 ,包括 HTML 和 Web控件 ,有一個 Visible 屬性來決定那個控件是否可見。 當一個控件的 Visible是 false值,那個控件就不會在頁面上顯示;那個控件也不會進一步運行。 Web控件 (不是每個 HTML 控件 ) 還 有一個叫 Enabled的屬性 。當 Enabled的屬性是false值,你用的瀏覽器是 ,也不起作用了,當用其他的瀏覽器的時候,如:網(wǎng)景瀏覽器那個控件不會被封,但它也是不起作用的。 使瀏覽狀態(tài)失效 在特定的環(huán)境中,你可能想要對一個單獨的控件或 狀態(tài)失效。 舉例來說 , 你可能使用一個有包含許多數(shù)據(jù)的控件 .(假想一個RadioButtonList 控件控制 1,000 個選項 )假如你擔心頁面數(shù)據(jù)會大大的降低頁面的顯示速度,你可能不想要加載數(shù)據(jù)到隱 藏的 VIEWSTATE頁面字段。 使用豐富頁面的控件 在下列的部分中,你學會在 Framework怎樣使用三種特征控件。學會該如何使用日歷控件顯示交互式日歷, AdRotator控件顯示滾動的廣告, HTMLInputFile控件來接受文件的上傳。 注意:請將外文文獻原文復印件附在后面。 外文文獻 Technique 1. Building Pages and the .NET Framework is part of Microsoft39。s overall .NET framework, which contains a vast set of programming classes designed to satisfy any conceivable programming need. In the following two sections, you learn how fits within the .NET framework, and you learn about the languages you can use in your pages. The .NET Framework Class Library Imagine that you are Microsoft. Imagine that you have to support multiple programming languages— such as Visual Basic, JScript, and C++. A great deal of the functionality of these programming languages overlaps. For example, for each language, you would have to include methods for accessing the file system, working with databases, and manipulating strings. Furthermore, these languages contain similar programming constructs. Every language, for example, can represent loops and conditionals. Even though the syntax of a conditional written in Visual Basic differs from the syntax of a conditional written in C++, the programming function is the same. Finally, most programming languages have similar variable data types. In most languages, you have some m