我有三个按钮,每个按钮都调用btn_Clicked
他们的onClick
事件。在后面的代码中,我想获取导致回发的按钮的 ID。我知道我可以分配每个按钮来调用不同的方法,但我想学习一点 ASP.Net。还告诉我哪种方法更有效?在不同的按钮点击时调用不同的方法或调用相同的方法(如果每个按钮的功能相同)。
问问题
45677 次
2 回答
28
将 sender 对象强制转换为按钮,然后您可以获得所有属性。
Button clickedButton = (Button)sender;
还告诉我哪种方法更有效?在不同的按钮点击时调用不同的方法或调用相同的方法(如果每个按钮的功能相同)。
如果功能相同,那么最好有一个事件,因为您不必复制代码。记住DRY 原则。
考虑以下示例:
protected void Button1_Click(object sender, EventArgs e)
{
Button clickedButton = sender as Button;
if (clickedButton == null) // just to be on the safe side
return;
if (clickedButton.ID == "Button1")
{
}
else if(clickedButton.ID == "Button2")
{
}
}
于 2012-12-13T04:38:31.903 回答
5
检查sender
您的回调方法的参数是否与您感兴趣的按钮相同。
Button button1;
Button button2;
void OnClick(object sender, RoutedEventArgs args)
{
Button button = sender as Button;
if (button == button1)
{
...
}
if (button == button2)
{
...
}
}
于 2012-12-13T04:38:54.273 回答