ASP.NET實現在伺服器端控制網頁

來源:互聯網
上載者:User
asp.net|伺服器|控制|網頁     使用.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控制項的定義:

<?xml:namespace prefix = asp />
<asp:panel id=TestPanel Width="398px" Height="171px" runat="server">
HTML GOES HERE
</asp:panel>

  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>

  3、建立一個LinkButton控制項

   我們需要對這一部分作一些解釋。我們為什麼會用LinkButton控制項取代一個超級連結呢?超級連結意味著我們可以隨意到包括當前的網頁在內的任意網頁上,但並不意味著我們要返回正在修改的網頁。另外,也沒有象OnClick這樣能夠處理超級連結的伺服器端方法。

   LinkButton的外觀和風格與hyperlink相同,但它還有另外二點好處,即:

   ·點擊時能夠返回同一個網頁。
   ·便於使用的OnClick方法。

   下面是一個LinkButton控制項定義的例子:

<asp:LinkButton id=ChangeAppearanceButton runat="server">
Change Appearance
</asp:LinkButton>

  4、提供onClick函數

   如果雙擊LinkButton控制項,IDE就會自動地將我們引到伺服器端該控制項的OnClick方法處,在這裡我們就可以編寫隱藏Panel控制項的代碼。

   5、在按鈕的OnClick方法中隱藏/顯示Panel控制項

   下面是OnClick方法的一個例子:

private void ChangeAppearanceButton_Click(object sender, System.EventArgs e)
{
this.TestPanel.Visible = this.TestPanel.Visible ? false : true;
}

  上面的代碼是一個極好的知道如何維護自己狀態的用品端編程模式的例子。當使用者點選連結時,就會執行上面的代碼,但開發人員並沒有改變HTML網頁的其他部分,控制項本身知道如何重新整理它們自己。

   結論

   下面是我從.NET模式中精選出來的非常有趣的特性:

   ·伺服器端編程模式。
   ·Web表單的狀態是自動維護的。
   ·高度一致的前、後端統一對象編程模式。
   ·用處很大的IDE能夠提示每個方法和可能的參數。
   ·在網頁的HTML視圖中編寫XML代碼也有提示。
   ·配置所需要的統一的web.config。

   儘管本文中的例子相當簡單,即使使用傳統的方法也能夠非常簡單地實現,但這種伺服器端的編程模式說明了NET的一個有趣的特性,即能夠自動維護其狀態的一致的統一伺服器端編程模式。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.