使用.Net和C#開發Web應用程序往往能給我們很大的啟示,尤其在開發相對簡單的例行任務時就更是如此。例如,在許多時候,我們都需要有條件地顯示一個網頁的一部分。需要這麼做的原因有許多,例如,根據用戶的角色,有一部分是它不應當看到的。或者,我們也可以考慮搜索功能,只有點擊了一個鏈接後,搜索選項才是可用的。
我們先來解釋一下解決這一問題的方法,然後再詳細地解釋所使用的代碼。在.Net中開發Web應用程序,我們既可以使用服務器端的Web控件(Web表單)也可以使用HTML控件。使用.NET開發Web應用程序的重點是服務器端控件。我們在本文中就使用了Web表單服務器端控件。
Panel是一個服務器端的Web表單控件,一個Panel控件就是HTML網頁上的一個矩形區域,它是否可見可以在服務器端進行控制。因此,首先,我們可以從將HTML代碼段放在一個Panel控件中,HTML代碼段可以由服務器端控件和客戶端控件組成。一旦我們將Panel控件的visibility屬性設置為“false”,則整個HTML代碼段就成為不可見的了。其次,我們可以使用名字為LinkButton的另一個Web表單控件,它本質上是一個超級鏈接,但通過服務器端的OnClick方法,它可以起到按鈕的作用。在這種方法中,我們只要簡單地訪問Panel對象的C#語言表示,並將其visibility屬性設置為true或false,網頁就會自動地刷新自己。
在.NET中開發Web應用程序的一個重要差別是,網頁上的每個控件都被表示為服務器端的一個.NET對象,而且這些對象(控件)的狀態通過與服務器間的多次交互來維護,這就使我們能夠對服務器端和客戶端的事件作出反應。響應服務器端的事件時,百網頁重新刷新時,其內部的所有對象(控件)也都會得到刷新。我們無需再繪制任何控件,這一切都是自動完成的。這種方法最有吸引力的是一個好的面向對象編程人員能夠在一種編程語言模式中工作,而且可以方便地使用JavaScript,調試也非常簡便。這種方法的一個小問題就是它不能使用FrontPage或Dreamweaver等HTML代碼編輯器。一旦這個問題得到了解決,服務器端的編程模式就更完善了。
下面是編寫本文中例子代碼所需要的步驟:
·為HTML代碼段獲得Panel控件。
·將HTML代碼置入Panel控件中。
·創建一個LinkButton控件。
·提供一個onClick函數。
·在按鈕的點擊函數中隱藏/顯示Panel控件。
1、為HTML代碼段獲得Panel控件
打開網頁(.aspx)的設計視圖,並選擇“Webforms控件”工具箱,從工具箱中拖出一個Panel控件到HTML網頁的設計視圖上。這時就會看到一個矩形框,發改變它的大小,直到能夠容下你想輸入的HTML代碼段。
下面是HTML設計視圖中Panel控件的定義:
<TABLE cellSpacing=0 cellPadding=0 width=600 bgColor=#ffffff border=0>
<?xml:namespace prefix = asp />
<asp:panel id=TestPanel Width="398px" Height="171px" runat="server">
HTML GOES HERE
</asp:panel>
</TABLE>
2、將我們的HTML代碼輸入到Panel控件中
在Panel控件中編寫相關的HTML代碼(或將HTML代碼拖到Panel控件中),下面是一個例子:
<asp:panel id=TestPanel Width="398px" Height="171px" runat="server">
<H2>An example HTML segment that is going to disappear </H2>
An example drop down
<asp:DropDownList id=ADropDownListBox runat="server">
</asp:DropDownList>
</asp:panel>