我在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";
}
}发布于 2013-07-27 09:16:26
你可以做下面这样的事情
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;
}
}
}
}发布于 2013-07-27 08:45:14
您应该为AutoPostBack添加LinkButton选项,并必须检查页面回发状态(isPostBack)。因为,您的代码将在每次回发时重新生成。
https://stackoverflow.com/questions/17895891
复制相似问题