Repeater控件内的链接按钮,如何更改单击项目的背景/前景色?

时间:2011-12-16 15:11:46

标签: c# asp.net linkbutton

我想显示一周中的天数列表(动态,有些时间全天,有时只有2-3) 然后用户将点击日期并刷新同一页面。 以上功能通过以下代码实现。

<asp:Repeater ID="DayList" Runat="server">
<ItemTemplate>
    <asp:LinkButton ID="lbDayList" Runat="server" CommandName='<%# DataBinder.Eval (Container.DataItem, "wkdayVal")%>'
    OnCommand="lbDayList_click" 
    DataBinder.Eval(Container.DataItem, "wkday")%>
    </asp:LinkButton>
  </ItemTemplate>                                                                            
</asp:Repeater> 

我想以不同的颜色显示点击的一天!!请帮助实现此功能!

1 个答案:

答案 0 :(得分:0)

您是否考虑过创建 styles.css 页面并使用LinkBut​​ton的CssClass=""属性?

在styles.css文件中,您将拥有以下内容:

.Visited
{
    color: #fff;
    background: inherit;
    text-decoration: none;
}

然后您的链接按钮的css属性将使用类似

的内容
CssClass="visited"

您需要在Repeater的PreRender部分执行此操作,因此请将Repeater的OnPreRender属性设置为Repeater_OnPreRender。然后在你的代码隐藏中创建一个像这样的函数

protected void Repeater_OnPreRender(object sender, EventArgs e)
{
//get the index of the selected item

//loop through your items colleciton until you find the item with the corresponding index

//find your link button

//set your link button's css attribute.

}

您在PreRender阶段执行此操作的原因是因为您的转发器已将数据加载到其中,并且尚未创建传回Web浏览器的HTML。

希望这会有所帮助。 GS