按钮控制提供被用于张贴网形式页回到服务器的命令按钮样式控制。 使用简单的按钮控制,以下样品说明。
button1_cs.aspx
Code
<html>
<head>
<script language="C#" runat="server">
void Button1_Click(object Source, EventArgs e) {
Label1.Text="You clicked the button";
}
</script>
</head>
<body>
<h3><font face="Verdana">PostBack Using Button</font></h3>
<form runat=server>
<asp:Button id=Button1 Text="Click Me" onclick="Button1_Click" runat="server" />
<asp:Label id=Label1 runat=server />
</form>
</body>
</html>
中继器或DataList,许多按钮控制也许被回报作为名单重复在它的数据来源。 由于这些按钮控制中的每一分享同一ID,您不可能束缚事件处理程序到每按钮控制的OnClick事件确定点击的特殊按钮。 要解决此,您在容器控制使用起泡的事件射击事件(在这种情况下,中继器、DataList或者DataGrid),并且让容器给予其它信息对关于提高事件的项目的事件处理程序。
这些事件可以从按钮被上升通过指定与事件的名字的CommandName物产。 当按钮点击时,命令“起泡”对容器控制(例如中继器),射击它自己的事件。 这个事件的论据也许包含其它信息,例如习惯串或提高事件项目的索引。
以下样品说明按钮控制命令怎么可能起泡到名单的OnItemCommand事件。 按钮控制的CommandName和CommandArgument串通过对OnItemCommand事件,允许样品代码区别哪个按钮点击。
button2_cs.aspx
在名单之内的起泡的按钮点击
当使用在一张templated名单例如
Code
<html>
<head>
<script language="C#" runat="server">
void Page_Load(Object Sender, EventArgs e) {
if (!Page.IsPostBack) {
ArrayList values = new ArrayList();
values.Add(new PositionData("Microsoft", "Msft", "150 shares"));
values.Add(new PositionData("Intel", "Intc", "25 shares"));
values.Add(new PositionData("Dell", "Dell", "115 shares"));
repeater1.DataSource = values;
repeater1.DataBind();
}
}
void Repeater1_ItemCommand(object sender, RepeaterCommandEventArgs e) {
lblResult.Text = "<u>Command</u> is: <b>" + e.CommandName + "</b>, <u>CommandArgument</u> is: <b>" + e.CommandArgument + "</b>";
}
public class PositionData {
private string name;
private string ticker;
private string shares;
public PositionData(string name, string ticker, string shares) {
this.name = name;
this.ticker = ticker;
this.shares = shares;
}
public string Name {
get {
return name;
}
}
public string Ticker {
get {
return ticker;
}
}
public string Shares {
get {
return shares;
}
}
}
</script>
</head>
<body>
<h3><font face="Verdana">Bubbling Button Clicks Within a List</font></h3>
<p></p>
<form runat=server>
<font face="Verdana" size="-1">
<asp:Repeater id=repeater1 onitemcommand="Repeater1_ItemCommand" runat="server">
<ItemTemplate>
<asp:Button id=btnBuy Text="Buy" CommandName="buy" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Ticker") %>' runat="server" />
<asp:Button id=btnSell Text="Sell" CommandName="sell" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Shares") %>' runat="server" />
<asp:Label id=lblCompany Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>' Font-Bold="true" runat=server />
<p>
</ItemTemplate>
</asp:Repeater>
<asp:Label id=lblResult runat="server" />
</font>
</form>
</body>
</html>
鼠在标按钮上的作用button3_cs.aspx
您能钩在按钮控制的客户剧本事件onmouseover和onmouseout提供老鼠在作用例如改变按钮的字体或肤色。 客户属性例如onmouseover由在服务器上的ASP.NET忽视,并且现状通过对浏览器。 如果您的应用瞄准支持DHTML的更新的浏览器,这些事件在浏览器将射击,游标通过在按钮。 以下样品展示与老鼠在作用的按钮。
Code
<html>
<head>
<script language="C#" runat="server">
void Button1_Click(object s, EventArgs e) {
Label1.Text="You clicked Button1";
}
void Button2_Click(object s, EventArgs e) {
Label1.Text="You clicked Button2";
}
</script>
</head>
<body>
<h3><font face="Verdana">Mouse-Over Effects on Button</font></h3>
<p>Move your mouse over the buttons to observe the mouse-over effects.</p>
<form runat=server>
<font face="Verdana" size="-1">
<asp:Button id=Button1 runat="server"
Text="Button1"
Width="100px"
onmouseover="this.style.backgroundColor='yellow'"
onmouseout="this.style.backgroundColor='buttonface'"
onclick="Button1_Click" />
Applies an inline CSS style (button background color)
<p>
<asp:Button id=Button2 runat="server"
Text="Button2"
Width="100px"
onmouseover="this.style.fontWeight='bold'"
onmouseout="this.style.fontWeight='normal'"
onclick="Button2_Click" />
Applies an inline CSS style (button font bold)
<p>
<asp:Label id=Label1 runat=server />
</font>
</form>
</body>
</html>