在DataList中单击后续按钮时取消突出显示上一个链接按钮

时间:2012-03-07 16:39:27

标签: c# asp.net

按下linkbutton时,我在DataList中突出显示某个LinkButton。每行都有一个链接按钮,当用户按下任何一行的下一个链接按钮时,上一个突出显示的链接按钮应该得到正常的透明背景。

要突出显示,我使用以下内容:

protected void DataList_ItemCommand(object source, DataListCommandEventArgs e)
     {
         if (e.CommandName == "select")
         {
             LinkButton highlighted = ((LinkButton)(e.Item.FindControl("Item")));
             highlighted.BackColor = System.Drawing.Color.Yellow;
...
}

当用户从数据列表中选择任何其他链接按钮时,如何“取消突出显示”上一个链接按钮? 由于回发正在进行,我无法使用全局LinkBut​​ton变量来检查下次存储以前单击的LinkedButton。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果要在页面加载时重新绑定网格,则应重置LinkBut​​tons的颜色。但是,这样的东西应该能够将所有链接按钮的背景颜色设置为透明:

VB.NET:

For Each DLItem As DataListItem In DataList1.Items
  Dim unHighLight As LinkButton = DLItem.FindControl("Item")
       If Not unHighLight Is Nothing Then
          unHighLight.BackColor = System.Drawing.Color.Transparent
       End If
Next

Dim highlighted As LinkButton = e.Item.FindControl("item")
highlighted.BackColor = System.Drawing.Color.Yellow

C#:

foreach (DataListItem DLItem in DataList1.Items)
{
   //unhighlight all ilnkbuttons
   LinkButton unHighLight = ((LinkButton)(DLItem.FindControl("Item")));
   if (unHighLight != null)
   {
    unHighLight.BackColor = System.Drawing.Color.Transparent;
   }
 }

LinkButton highlighted = ((LinkButton)(e.Item.FindControl("Item")));
highlighted.BackColor = System.Drawing.Color.Yellow;