我有一箇中繼器,並且裏面有一個imagebutton。當用戶點擊一個圖像按鈕時,我會改變邊框顏色,但我正在尋找 解決方案來解決上一個問題。如何分配diffrerent id到中繼器的項目,以檢測點擊的ImageButton
我所做的就是將被點擊的人的ID更改爲OLDID,然後當用戶下一次點擊另一個圖像按鈕時,找到之前點擊的人(OLDID),然後忽略它。 問題是在頁面中找到OLDID,因爲它在一箇中繼器裏面,我不能寫OLDID.ID = xxx,也就是e.Item.FindControl(「OLDID」);不起作用。
我搜索了很多,但找不到解決方案,有這樣的問題,但仍然沒有答案。 任何建議將不勝感激。
<asp:Repeater ID="rptrPlatforms" runat="server" OnItemDataBound="rptrPlatforms_ItemDataBound" OnItemCommand="rptrPlatforms_ItemCommand">
<ItemTemplate>
<div style="border: 4px solid green; height: 250px; width: 330px;" runat="server">
<asp:ImageButton ID="imgPlatform" alt="" Style="border: 4px solid; height: 240px; width: 320px;" runat="server" OnCommand="Platform_Click" CommandName="PlatformClick" CommandArgument='<%# DataBinder.Eval(Container.DataItem,"PlatformLanguageID")+","+DataBinder.Eval(Container.DataItem,"PlatformID") %>' />
</div>
</ItemTemplate>
</asp:Repeater>
後面的代碼:
protected void rptrPlatforms_ItemCommand(object source, RepeaterCommandEventArgs e)
{
ImageButton Oldimg = (ImageButton)e.Item.FindControl("OLDID");
if (Oldimg != null)
{
Oldimg.Attributes.CssStyle.Add("border-color", "#000000");
Oldimg.ID = "imgPlatform";
}
ImageButton img = (ImageButton)e.CommandSource;
img.Attributes.CssStyle.Add("border-color", "#00FFFF");
img.Attributes.CssStyle.Add("border-width", "8px");
img.Attributes.CssStyle.Add("border-style", "solid");
img.ID = "OLDID";
}
你是否必須在你的代碼中實現這個邏輯? JavaScript或jQuery怎麼樣? –
感謝Hanlet考慮這個問題。是的,我喜歡在代碼背後做,現在通過J.F. –
的解決方案解決了它=)我很高興你找到了解決方案。 –