【问题标题】:DataList ItemCommand Event changing CSS classDataList ItemCommand 事件改变 CSS 类
【发布时间】:2013-07-27 08:35:45
【问题描述】:

我在 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";
              }


        }

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    你可以做下面的事情

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

    【讨论】:

    • 为什么是int index = e.Item.ItemIndex;index == i? "selectedclass" ?
    • 什么是selectedclass
    • 它的 CSS 类的颜色:Red !important 属性,我的代码运行良好
    • 把你的css类改成font: 15pt Times; 看看你能看到变化。如果那发生了变化,您的颜色变化将被另一个 css 类丢弃
    【解决方案2】:

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

    【讨论】:

    • 链接按钮没有 AutoPostback 属性
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多