C# DataList ItemCommand事件更改CSS类

C# DataList ItemCommand事件更改CSS类,c#,asp.net,C#,Asp.net,我在DataList控件中有按钮,当我点击一个按钮时,我正在itemcommand事件中更改它的CSS类,该类正在按预期更改,但当我点击button1时,它将更改它的CSS类,然后点击button2,它也将更改它的CSS类,但button1也有相同的类,我只想在我点击的按钮上添加这个类。 这是我的aspx代码 <asp:DataList ID="lst" runat="server" OnItemCommand="lst_ItemCommand"

我在DataList控件中有按钮,当我点击一个按钮时,我正在itemcommand事件中更改它的CSS类,该类正在按预期更改,但当我点击button1时,它将更改它的CSS类,然后点击button2,它也将更改它的CSS类,但button1也有相同的类,我只想在我点击的按钮上添加这个类。 这是我的aspx代码

 <asp:DataList ID="lst" runat="server" OnItemCommand="lst_ItemCommand"
                        Width="187">
                        <HeaderTemplate>
                        </HeaderTemplate>
                        <ItemTemplate>
                            <div class="num">
                                <asp:LinkButton  style="text-decoration:none;" ID="lnk" CommandName="detail" CommandArgument='<%# Eval("UserID") %>'
                                    runat="server"><%# Eval("Title")+" "+Eval("Firstname")%></asp:LinkButton>
                            </div>
                        </ItemTemplate>
                        <FooterTemplate>
                        </FooterTemplate>
                    </asp:DataList>

您应该为LinkButton添加自动回发选项,并且必须检查页面回发状态(isPostBack)。因为,每次回发都会重新生成代码。

您可以执行以下操作

protected void lst_ItemCommand(object source, DataListCommandEventArgs e)
{
    if (e.CommandName == "detail")
    {
        int index = e.Item.ItemIndex;

        for (int i = 0; i < lst.Items.Count; i++)
        {
            LinkButton btnlnk = lst.Items[i].FindControl("lnk") as LinkButton;
            if (btnlnk !=null)
            {
                btnlnk.CssClass = index == i? "selectedclass" :string.Empty;
            }

        }

    } 
}
protectedvoid lst_ItemCommand(对象源,DataListCommandEventArgs e)
{
如果(例如CommandName==“详细信息”)
{
int index=e.Item.ItemIndex;
对于(int i=0;i
Linkbutton没有自动回邮属性HY
int index=e.Item.ItemIndex<代码>索引==i?“selectedclass”
?什么是
selectedclass
?它的CSS类的颜色是:红色!重要属性,它与我的codechange配合良好将css类更改为
font:15pt次检查您可以看到更改。如果这种情况发生变化,您的颜色变化将被另一个css类丢弃
protected void lst_ItemCommand(object source, DataListCommandEventArgs e)
{
    if (e.CommandName == "detail")
    {
        int index = e.Item.ItemIndex;

        for (int i = 0; i < lst.Items.Count; i++)
        {
            LinkButton btnlnk = lst.Items[i].FindControl("lnk") as LinkButton;
            if (btnlnk !=null)
            {
                btnlnk.CssClass = index == i? "selectedclass" :string.Empty;
            }

        }

    } 
}