ASP.NET Button、ImageButton、LinkButton、HyperLink區別


這4個控件都屬於WEB服務器控件,有很多相同的屬性和事件。其區別如下所示。

 在*.aspx頁面中插入Button控件如以下代碼所示。
<asp:Button runat="server" ID="b1" Text="Button控件" />
在頁面運行后,Button控件最終生成的HTML標簽如以下代碼所示。
<input type="submit" name="b1" id="b1"value="Button控件" />
即Button控件最終生成的是HTML表單控件中的提交按鈕,其“name”屬性和“id”屬性為服務器控件中的“ID”屬性值。

 在*.aspx頁面中插入ImageButton控件如以下代碼所示。
<asp:ImageButton runat="server" ID="b2" ImageUrl="/img/uc1.gif" />
在頁面運行后,ImageButton控件最終生成的HTML標簽如以下代碼所示。
<input type="image" name="b2" id="b2" src="/img/uc1.gif" />
類似於Button控件,ImageButton控件最終生成的也是HTML表單控件,只是類型為圖像,其“src”屬性值(圖像鏈接路徑)即為服務器控 件中的“ImageUrl”屬性值。

 在*.aspx頁面中插入LinkButton控件如以下代碼所示。
<asp:LinkButton runat="server" ID="b3" Text="LinkButton控件"></asp:LinkButton>
在頁面運行后,LinkButton控件最終生成的HTML標簽如以下代碼所示。
<a id="b2" href="javascript:__doPostBack('b3','')">LinkButton控件</a>
和以上兩個控件不同,LinkButton控件生成的HTML標簽是超級鏈接,只是“href”屬性指向一個瀏覽器端的javascript函數 (__doPostBack函數),並傳遞兩個字符串參數。其中,第1個參數是該服務器控件的“ID”屬性值,第2個參數則為可傳遞給服務器的事件參數。
說明:__doPostBack函數的第1個參數即為引發頁面回傳的控件ID,后面講述回傳機制時會詳細分析。

 在*.aspx頁面中插入HyperLink控件如以下代碼所示。
<asp:HyperLink runat="server" ID="b4" Text="HyperLink控件" NavigateUrl="~/Index.aspx"></asp:HyperLink>
在頁面運行后,HyperLink控件最終生成的HTML標簽如以下代碼所示。
<a id="b4" href="http://sdrabbit.blog.163.com/blog/Index.aspx">HyperLink控件</a>
類似於LinkButton控件,HyperLink控件所生成的HTML標簽是最常用的超級鏈接,其“href”屬性即為服務器控件中的 “NavigateUrl”屬性值,指向一個頁面的URL。

【分析】
本題考查面試者對幾個常用且字面上容易混淆的服務器控件的認識程度。解答中通過這些服務器控件實際生成的HTML代碼進行區分.
Button控件使用非常 頻繁,該控件用於提交表單數據。
ImageButton控件和Button控件基本相似,只是通過圖像來表現外觀.
和Button控件的Click事件不 同,ImageButton控件的Click事件是配合System.Web.UI.ImageClickEventHandler委托工作的。即 ImageButton控件的Click事件處理方法中使用的事件參數類型為System.Web.UI.ImageClickEventArgs,兩個 參數X,Y可以獲取用戶單擊的精確位置並做相應的處理。
LinkButton控件和HyperLink控件直接生成超級鏈接標簽,從外觀上來 看,LinkButton控件和HyperLink控件是一模一樣的,因為它們生成的都是超級鏈接標簽。
以上幾個控件中,只有HyperLink控件不傳 遞數據給服務器,根據“NavigateUrl”屬性直接跳轉到指定頁面。而其他三個控件都是通過表單將數據提交到服務器,LinkButton控件有點 特殊,該控件通過javascript函數的__doPostBack函數將數據賦值給表單的隱藏字段,然后提交回服務器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM