Samira Radwan Ответов: 1

Добавить CSS к выбранной кнопке ссылки внутри listview


Привет,

У меня есть приложение, ASP.NET форму, которая имеет кнопку-ссылку внутри элемента управления ListView.
Что я хочу сделать, так это выделить / изменить цвет выбранной кнопки на Itemcommand.
Я перепробовал множество решений, но безуспешно. Он меняет цвет, но не меняется обратно, когда я нажимаю другую кнопку.

Любая помощь будет очень признательна.
Спасибо
Самира

Что я уже пробовал:

Я попытался изменить цвет выбранной / нажатой кнопки на ItemCommand, ItemDataBound и button click.
Кнопку-ссылку внутри элемента управления ListView:
<asp:ListView runat="server" ID="subs_view" DataSourceID="SubsFilterSqlDataSource" OnItemCommand="subs_view_ItemCommand" OnItemDataBound= "subs_view_ItemDataBound">
 <ItemTemplate>                                                       
    <asp:LinkButton  cssClass="col-md-9 link-btn" runat="server" ID="btnSubs" CommandName="subs" CommandArgument='<%#Eval("code") %>' Text='<%#Eval("SubCat_CountItems") %>' OnClick="btnSubs_Click"> </asp:LinkButton>
 </ItemTemplate>
</asp:ListView>

Я пытался менять цвета по-разному:
protected void subs_view_ItemCommand(object sender, ListViewCommandEventArgs e)
        {   
            if (e.CommandName == "subs")
            {
                
                LinkButton linkbtn = (LinkButton)e.Item.FindControl("btnSubs");                
                linkbtn.ForeColor = System.Drawing.Color.Red;
//the color stays red when clicking another button
            }
        }


protected void btnSubs_Click(object sender, EventArgs e)
        {
            //subs_view.DataBind();
            //LinkButton mybtn = (LinkButton)sender;
            ////mybtn.ForeColor = System.Drawing.Color.Black;
            //mybtn.ForeColor = System.Drawing.Color.Red;
        }

--
protected void subs_view_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
            //LinkButton btnSubs = (LinkButton)e.Item.FindControl("btnSubs");
            //btnSubs.ForeColor = System.Drawing.Color.Black;
        }

1 Ответов

Рейтинг:
8

Bryian Tan

Вы можете попробовать установить

ViewStateMode="Disabled"
на элементе управления ListView. В этом случае при нажатии кнопки post back произойдет восстановление исходного цвета с использованием цвета по умолчанию вместо цвета, сохраненного в ViewState.


Samira Radwan

Эта работа. Большое спасибо!!