我将一个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?
答案 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>