将asp Web控件作为CommandArgument传递

时间:2014-07-08 18:50:22

标签: c# asp.net

在我的网络应用程序中,我有一系列ImageButtons。单击任何这些ImageButton时,单击的ImageButton需要更改它的图像。

我想要一个OnClick方法在单击的ImageButton上执行其操作。这是我到目前为止的尝试: ASP.NET代码:

<asp:ImageButton ID="ImageToChange1" runat="server" OnClick="ChangeImage" CommandArgument="ImageToChange1"/>
<asp:ImageButton ID="ImageToChange2" runat="server" OnClick="ChangeImage" CommandArgument="ImageToChange2"/>
<asp:ImageButton ID="ImageToChange3" runat="server" OnClick="ChangeImage" CommandArgument ="ImageToChange3"/>

对于我的C#代码,我想做类似以下的事情:

public void ChangeImage(object sender, CommandEventArgs e)
{
    e.CommandArgument.ImageUrl = "~/Images/Penguins.jpg";
}

我想知道是否有比使用“OnClick”事件更合适的方法,或者我可以通过某种方式操纵“e”或“发件人”来实现这一点。任何见解将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

在ChangeImage中,您可以获得CommandArgument和控件,如下所示

public void ChangeImage(object sender, CommandEventArgs e)
{
      ImageButton imageButton = sender as ImageButton;
      string imageToChange = e.CommandArgument;
      //Then you can assign the appropreate image
      imageButton.ImageUrl = "~/Images/Penguins.jpg";

}