繁体   English   中英

DataList ItemCommand事件更改CSS类

[英]DataList ItemCommand Event changing CSS class

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

这是我的.CS代码

   protected void lst_ItemCommand(object source, DataListCommandEventArgs e)
        {

            if (e.CommandName == "detail")
            {
            LinkButton btnlnk = (LinkButton)e.Item.FindControl("lnk");
                btnlnk.CssClass = "selectedclass";
              }


        }

你可以做下面的事情

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

        }

    } 
}

您应该为LinkBut​​ton添加AutoPostBack选项,并且必须检查页面回发状态(isPostBack)。 因为,您的代码将为每个回发重新生成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM