将ImageButton ImageUrl重置为默认URL

时间:2014-11-18 10:37:42

标签: c# repeater imagebutton imageurl

我将一个ImageButton放入中继器。

我的ASP.NET代码是:

<asp:Repeater ID="rpt" runat="server">
  <ItemTemplate>
    <asp:ImageButton ID="img_sport" runat="server" CommandName='<%# Eval("IDSport") %>' CommandArgument='<%#  Eval("SportName") %>' ImageUrl='<%#  Eval("SportName","~/Images/{0}-trp.png") %>' OnCommand="img_sport_Click" />
  </ItemTemplate>
</asp:Repeater>

从后面的代码我以这种方式更改所选/点击图像的ImageUrl:

[...]
ImageButton btn = (ImageButton)sender;
btn.ImageUrl = "/Images/" + sportName + "-trp-selected.png";
[...]

但是,如果我点击其他图片,我会将两个/三个/四个图像显示为已选中,所以首先,在我的代码后面,我想将ImageUrl重置为默认值,然后我和#39; ll仅将新的ImageUrl应用于所选/单击的ImageButton。

那么,如何重置所有ImageUrl?

1 个答案:

答案 0 :(得分:1)

在查看代码时,我想您想要在单击时更改图像,以便用户可以识别是否选择了图像。如果你想实现这一目标,为什么不试试JavaScript,它可以处理同样的事情而不回发。

请参阅以下带有JavaScript函数的代码示例:

<asp:Repeater ID="rpt" runat="server">
    <ItemTemplate>
        <asp:ImageButton ID="img_sport" runat="server" ImageUrl='<%#  Eval("SportName","~/Images/{0}-trp.png") %>' OnClientClick='<%# "return ManageSelection(this,\"" + Eval("SportName").ToString() + "\");"%>' />
    </ItemTemplate>
</asp:Repeater>

<script type="text/javascript">
    function ManageSelection(control, sportName) {
        var selectedImage = '/Images/' + sportName + "-trp-selected.png";
        $(control).attr('src', selectedImage);
        return false;
    }
</script>