2011-12-16 3 views
0

Я хотел бы показать список дней в неделю (динамический, некоторое время всего дня, всего лишь 2-3) , после чего пользователь нажмет на день и обновит ту же страницу. Выше функциональность достигается с помощью кода ниже.Ссылка кнопки внутри регулятора Repeater, как изменить цвет фона/переднего плана щелкнутого элемента?

<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> 

Я хочу показать щелкнутый день в другом цвете !! Пожалуйста, помогите в достижении этой функциональности!

ответ

0

Считаете ли вы создание страницы styles.css и используя атрибут CssClass="" вашего LinkButton?

В файле styles.css вы бы что-то вроде следующего:

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

Затем атрибут CSS ваша кнопка Линка будет использовать что-то вроде

CssClass="visited" 

Вы хотите, чтобы сделать это часть 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 стадии происходит потому, что ваш ретранслятор уже есть данные, загруженные в него и HTML, который передается обратно в веб-браузере не имеет но был создан.

Надеюсь, это поможет. GS

+0

Лучше сделать класс (например, «MyLink»), а затем стиль MyLink.visited и т. Д. Затем просто установите CssClass = «MyLink». Пусть HTML и CSS выполняют работу, а не код C# :) – HardCode