更改一个动态创建的LinkBut​​ton的样式,而不影响其他人?

时间:2009-03-10 13:44:38

标签: c# asp.net

我有一个循环遍历列表并使用LinkBut​​ton控件创建链接的方法。出于这个问题的目的,假设它是一个颜色列表,我有5种颜色:红色,绿色,蓝色,红色和黄色。这是我如何创建链接和添加事件处理程序的代码片段。

foreach(color in colors)
{
    LinkButton lb = new LinkButton();
    lb.Text = color.name;
    lb.Click += new System.EventHandler(this.colorClick); 
    lb.CommandName = "CommandName";
    lb.CommandArgument = "CommandArgument";
    lb.ID = color.Id;
}

在偶数处理程序中,使用colorClick,我通过执行以下操作来粗体化所单击的链接:

protected void colorClick(object o, EventArgs e)
{
    LinkButton lnk = (LinkButton)o;
    lnk.Style["font-weight"] = "bold";

    //Process clicked link.
}

上面的代码在加粗当前点击的链接时运行正常,我遇到的问题是假设点击的链接是红色,所以Red会加粗,如果我点击蓝色,我想加粗链接蓝色,但是未说明的红色。我试过了:

lnk.Style["font-weight"] = "normal";
lnk.Font.Bold = "false";

但是,我发现虽然以上可能是正确的,但我在错误的位置(colorClick)进行。我的想法是,我可能必须记住以前点击的链接并解开那个,但我不确定如何做到这一点。

1 个答案:

答案 0 :(得分:1)

你有三个选择:

  1. 存储之前为粗体且未加粗的链接。
  2. 迭代链接并查找一个粗体和非粗体的链接。
  3. 或者在将链接设置为粗体之前,只需取消粗体。

删除font-weight的代码是:

lnk.Style.Remove("font-weight")