Linkbutton控件

Linkbutton控件在項目中的簡單應用

我們知道,在web控件中有一組用於表單提交和回傳的控件,即Button控件。這類控件用於將帶有用戶輸入值的頁面提交給服務器,以便用頁面中的代碼對這些值進行處理。它會在服務器上產生一個Click事件,供用戶在代碼中使用。

Button 控件可分爲button 控件、LinkButton 控件、ImageButton控件三類。它們都用於提交頁面。其中ImageButton 控件可以顯示爲一幅圖像,並且能夠提供用戶單擊位置的座標位置。而LinkButton控件則在頁面上顯示爲一個超級鏈接。

在網上鞋店系統中,我們簡單應用了在一個頁面內使用多個LinkButton 控件執行同一個命令的方法。接下來我們比較詳細的介紹一下。

問題一:使用LinkButton是用於鏈接到各個品牌細節的頁面。那麼爲什麼不選用導航HyperLink,而以LinkButton取而代之?

事實上,HyperLink控件僅僅是產生一個有URL指向的超級鏈接LinkButton控件屬於Button類控件。它本身支持事件處理,並沒有NavigateUrl屬性,它的URL鏈接功能亦主要是由事件處理完成——LinkButton控件支持OnClickOnCommand等服務器端方法。可歸納如下:

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

     點擊時能夠返回同一個網頁。

     便於使用的OnClick方法。

問題二:已經確定使用LinkButton。那麼如何在一個頁面裏對多個LinkButton控件定義方法?要爲每一個控件都寫同樣的方法嗎?這顯然是不切實際的。那如果只寫一個方法,又如何判斷是哪個控件觸發,服務器向誰提供服務?

在這裏我們應用LinkButton的屬性CommandName和方法Command來實現。

首先我們先了解一下LinkButton的幾個比較重要的屬性和方法。

     CommandName屬性:取得或設定與LinkButton控制項相關的命令名稱。這個值與CommandArgument屬性一起傳給Command處理事件。

     CommandArgument屬性:包含有關命令的補充資訊,如Ascending排序順序。和CommandName一起使用。

     Click事件:這一事件一般在沒有命令名與LinkButton控制關聯時(如“提交”按鈕)使用。

     Command事件:當單擊 LinkButton 控件時會引發 Command 事件。當命令名(如 Sort)與 LinkButton 控件關聯時,通常使用該事件。這使您可以在一個網頁上創建多個 LinkButton 控件,並以編程方式確定單擊了哪個 LinkButton 控件。

瞭解LinkButton的屬性和方法後。我們可以在程序中給LinkButtonCommandName屬性和CommandArgument屬性賦值,然後通過Command事件中,即可從CommandEventArgs類中得到數據,進而判斷是哪個LinkButton被觸發了。其中,CommandEventArgs類存儲了和按鈕(Button)事件相關的數據,並且可以在事件處理中通過CommandEventArgs類的屬性來訪問這些數據。

代碼:

private void BrandLink_Click(object sender, System.Web.UI.WebControls.CommandEventArgs e)     {      string cmd = e.CommandName;   

     switch(cmd)      {       case "BrandLink1":        this.Session["fileName"]=BrandLink1.Text;        Server.Transfer("BrandPic.aspx");        break;       case "BrandLink2":        this.Session["fileName"]=BrandLink2.Text;        Server.Transfer ("BrandPic.aspx");        break;       case "BrandLink3":        this.Session["fileName"]=BrandLink3.Text;        Server.Transfer("BrandPic.aspx");        break;       case "BrandLink4":        this.Session["fileName"]=BrandLink4.Text;        Server.Transfer("BrandPic.aspx");        break;       case "BrandLink5":        this.Session["fileName"]=BrandLink5.Text;        Server.Transfer("BrandPic.aspx");        break;       case "BrandLink6":        this.Session["fileName"]=BrandLink6.Text;        Server.Transfer("BrandPic.aspx");        break;       case "BrandLink7":        this.Session["fileName"]=BrandLink7.Text;        Server.Transfer("BrandPic.aspx");        break;                   default:        this.Session["fileName"]=BrandLink0.Text;        Server.Transfer("Shop.aspx");        break;      }     }

.aspx

發佈了5 篇原創文章 · 獲贊 5 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章