我們知道,在web控件中有一組用於表單提交和回傳的控件,即Button控件。這類控件用於將帶有用戶輸入值的頁面提交給服務器,以便用頁面中的代碼對這些值進行處理。它會在服務器上產生一個Click事件,供用戶在代碼中使用。 Button 控件可分爲button 控件、LinkButton 控件、ImageButton控件三類。它們都用於提交頁面。其中ImageButton 控件可以顯示爲一幅圖像,並且能夠提供用戶單擊位置的座標位置。而LinkButton控件則在頁面上顯示爲一個超級鏈接。 在網上鞋店系統中,我們簡單應用了在一個頁面內使用多個LinkButton 控件執行同一個命令的方法。接下來我們比較詳細的介紹一下。 問題一:使用LinkButton是用於鏈接到各個品牌細節的頁面。那麼爲什麼不選用導航HyperLink,而以LinkButton取而代之? 事實上,HyperLink控件僅僅是產生一個有URL指向的超級鏈接,而LinkButton控件屬於Button類控件。它本身支持事件處理,並沒有NavigateUrl屬性,它的URL鏈接功能亦主要是由事件處理完成——LinkButton控件支持OnClick、OnCommand等服務器端方法。可歸納如下: 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的屬性和方法後。我們可以在程序中給LinkButton的CommandName屬性和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 |
Linkbutton控件
Linkbutton控件在項目中的簡單應用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.