Linkbutton控件在項目中的簡單應用
更新時間:2013年05月16日 17:48:11 作者:
Button控件可分為button控件、LinkButton控件、ImageButton控件三類,而LinkButton控件則在頁面上顯示為一個超級鏈接,下面與大家分享下其具體應用
Linkbutton控件在項目中的簡單應用
我們知道,在web控件中有一組用于表單提交和回傳的控件,即Button控件。這類控件用于將帶有用戶輸入值的頁面提交給服務器,以便用頁面中的代碼對這些值進行處理。它會在服務器上產(chǎn)生一個Click事件,供用戶在代碼中使用。
Button控件可分為button控件、LinkButton控件、ImageButton控件三類。它們都用于提交頁面。其中ImageButton控件可以顯示為一幅圖像,并且能夠提供用戶單擊位置的坐標位置。而LinkButton控件則在頁面上顯示為一個超級鏈接。
在網(wǎng)上鞋店系統(tǒng)中,我們簡單應用了在一個頁面內(nèi)使用多個LinkButton控件執(zhí)行同一個命令的方法。接下來我們比較詳細的介紹一下。
問題一:使用LinkButton是用于鏈接到各個品牌細節(jié)的頁面。那么為什么不選用導航HyperLink,而以LinkButton取而代之?
事實上,HyperLink控件僅僅是產(chǎn)生一個有URL指向的超級鏈接,而LinkButton控件屬于Button類控件。它本身支持事件處理,并沒有NavigateUrl屬性,它的URL鏈接功能亦主要是由事件處理完成——LinkButton控件支持OnClick、OnCommand等服務器端方法??蓺w納如下:
LinkButton的外觀和風格與hyperlink相同,但它還有另外二點好處,即:
◆ 點擊時能夠返回同一個網(wǎng)頁。
◆ 便于使用的OnClick方法。
問題二:已經(jīng)確定使用LinkButton。那么如何在一個頁面里對多個LinkButton控件定義方法?要為每一個控件都寫同樣的方法嗎?這顯然是不切實際的。那如果只寫一個方法,又如何判斷是哪個控件觸發(fā),服務器向誰提供服務?
在這里我們應用LinkButton的屬性CommandName和方法Command來實現(xiàn)。
首先我們先了解一下LinkButton的幾個比較重要的屬性和方法。
◆ CommandName屬性:取得或設定與LinkButton控制項相關的命令名稱。這個值與CommandArgument屬性一起傳給Command處理事件。
◆ CommandArgument屬性:包含有關命令的補充資訊,如Ascending排序順序。和CommandName一起使用。
◆ Click事件:這一事件一般在沒有命令名與LinkButton控制關聯(lián)時(如“提交”按鈕)使用。
◆ Command事件:當單擊LinkButton 控件時會引發(fā) Command事件。當命令名(如 Sort)與 LinkButton控件關聯(lián)時,通常使用該事件。這使您可以在一個網(wǎng)頁上創(chuàng)建多個 LinkButton控件,并以編程方式確定單擊了哪個 LinkButton 控件。
了解LinkButton的屬性和方法后。我們可以在程序中給LinkButton的CommandName屬性和CommandArgument屬性賦值,然后通過Command事件中,即可從CommandEventArgs類中得到數(shù)據(jù),進而判斷是哪個LinkButton被觸發(fā)了。其中,CommandEventArgs類存儲了和按鈕(Button)事件相關的數(shù)據(jù),并且可以在事件處理中通過CommandEventArgs類的屬性來訪問這些數(shù)據(jù)。
代碼:
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;
}
}
我們知道,在web控件中有一組用于表單提交和回傳的控件,即Button控件。這類控件用于將帶有用戶輸入值的頁面提交給服務器,以便用頁面中的代碼對這些值進行處理。它會在服務器上產(chǎn)生一個Click事件,供用戶在代碼中使用。
Button控件可分為button控件、LinkButton控件、ImageButton控件三類。它們都用于提交頁面。其中ImageButton控件可以顯示為一幅圖像,并且能夠提供用戶單擊位置的坐標位置。而LinkButton控件則在頁面上顯示為一個超級鏈接。
在網(wǎng)上鞋店系統(tǒng)中,我們簡單應用了在一個頁面內(nèi)使用多個LinkButton控件執(zhí)行同一個命令的方法。接下來我們比較詳細的介紹一下。
問題一:使用LinkButton是用于鏈接到各個品牌細節(jié)的頁面。那么為什么不選用導航HyperLink,而以LinkButton取而代之?
事實上,HyperLink控件僅僅是產(chǎn)生一個有URL指向的超級鏈接,而LinkButton控件屬于Button類控件。它本身支持事件處理,并沒有NavigateUrl屬性,它的URL鏈接功能亦主要是由事件處理完成——LinkButton控件支持OnClick、OnCommand等服務器端方法??蓺w納如下:
LinkButton的外觀和風格與hyperlink相同,但它還有另外二點好處,即:
◆ 點擊時能夠返回同一個網(wǎng)頁。
◆ 便于使用的OnClick方法。
問題二:已經(jīng)確定使用LinkButton。那么如何在一個頁面里對多個LinkButton控件定義方法?要為每一個控件都寫同樣的方法嗎?這顯然是不切實際的。那如果只寫一個方法,又如何判斷是哪個控件觸發(fā),服務器向誰提供服務?
在這里我們應用LinkButton的屬性CommandName和方法Command來實現(xiàn)。
首先我們先了解一下LinkButton的幾個比較重要的屬性和方法。
◆ CommandName屬性:取得或設定與LinkButton控制項相關的命令名稱。這個值與CommandArgument屬性一起傳給Command處理事件。
◆ CommandArgument屬性:包含有關命令的補充資訊,如Ascending排序順序。和CommandName一起使用。
◆ Click事件:這一事件一般在沒有命令名與LinkButton控制關聯(lián)時(如“提交”按鈕)使用。
◆ Command事件:當單擊LinkButton 控件時會引發(fā) Command事件。當命令名(如 Sort)與 LinkButton控件關聯(lián)時,通常使用該事件。這使您可以在一個網(wǎng)頁上創(chuàng)建多個 LinkButton控件,并以編程方式確定單擊了哪個 LinkButton 控件。
了解LinkButton的屬性和方法后。我們可以在程序中給LinkButton的CommandName屬性和CommandArgument屬性賦值,然后通過Command事件中,即可從CommandEventArgs類中得到數(shù)據(jù),進而判斷是哪個LinkButton被觸發(fā)了。其中,CommandEventArgs類存儲了和按鈕(Button)事件相關的數(shù)據(jù),并且可以在事件處理中通過CommandEventArgs類的屬性來訪問這些數(shù)據(jù)。
代碼:
復制代碼 代碼如下:
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;
}
}
相關文章
.NET實現(xiàn)可交互的WINDOWS服務的實例代碼
那么來看一下如何才能實現(xiàn)一個可交互的服務呢。步驟與實現(xiàn)基本的服務一樣2013-03-03如何使用Rotativa在ASP.NET Core MVC中創(chuàng)建PDF詳解
這篇文章主要給大家介紹了關于如何使用Rotativa在ASP.NET Core MVC中創(chuàng)建PDF的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-02-02ASP.NET Core為Ocelot網(wǎng)關配置Swagger
這篇文章介紹了ASP.NET Core為Ocelot網(wǎng)關配置Swagger的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04.Net中異步任務的取消和監(jiān)控的具體實現(xiàn)
本文主要介紹了.Net中異步任務的取消和監(jiān)控的具體實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09