我有以下内容<asp:Repeater>
:
<asp:Repeater ID="repMenuParent" runat="server" DataSourceID="odsMenuParent" OnItemCommand="repMenuParent_OnItemCommand" OnItemDataBound="repMenuParent_OnItemDataBound" >
<ItemTemplate>
<asp:Button id="btnRepeaterParent" runat="server" SkinID="btnAgroquimicos" CssClass="celdasMenusDinamicas" Text='<%# Eval("NOMBRE") %>' CommandName='<%# Eval("NOMBRE") %>' />
</ItemTemplate>
</asp:Repeater>
当 commandEvent 被触发时,我使用 commandName 和 uniqueId 建立了一个会话:
protected void repMenuParent_OnItemCommand(object source, RepeaterCommandEventArgs e)
{
Session.Add("nombreSubMenuAgro", e.CommandName);
String id = e.Item.UniqueID;
Session.Add("souceId", id);
}
问题如下:我需要更改用户点击的中继器内按钮的前景色。在开始时,所有按钮(中继器中的项目)都是灰色的。单击某人时,我需要将其前景色更改为红色(如面包屑)。
我试图在 中找到该项目itemDataBound
并比较 uniqueId 但它不起作用,我不知道如何找到单击以更改前景色的特定项目:
protected void repMenuParent_OnItemDataBound(object Sender, RepeaterItemEventArgs e)
{
String sessionID = "";
Button btnRepeater;
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
btnRepeater = (Button)e.Item.FindControl("btnRepeaterParent");
if (btnRepeater != null)
{
if(btnRepeater.UniqueID.Equals(sessionID))
{
btnRepeater.ForeColor = System.Drawing.Color.FromArgb(69, 187, 32);
}
}
}
}
我已经阅读了许多关于中继器的博客主题并找到了它的项目,但找不到任何解决我的问题的东西,可以帮助我吗?