Linkbutton控件在项目中的简单应用
程序员文章站
2024-03-02 21:54:28
linkbutton控件在项目中的简单应用 我们知道,在web控件中有一组用于表单提交和回传的控件,即button控件。这类控件用于将带有用户输入值的页面提交给服务器,以便...
linkbutton控件在项目中的简单应用
我们知道,在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;
}
}
我们知道,在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;
}
}