Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不影响其他链接按钮的情况下更改动态创建的链接按钮的样式?_C#_Asp.net - Fatal编程技术网

C# 在不影响其他链接按钮的情况下更改动态创建的链接按钮的样式?

C# 在不影响其他链接按钮的情况下更改动态创建的链接按钮的样式?,c#,asp.net,C#,Asp.net,我有一个方法,可以在列表中循环并使用LinkButton控件创建链接。对于这个问题,假设这是一个颜色列表,我有5种颜色:红色、绿色、蓝色、红色和黄色。下面是我如何创建链接和添加事件处理程序的代码片段 foreach(color in colors) { LinkButton lb = new LinkButton(); lb.Text = color.name; lb.Click += new System.EventHandler(this.colorClick);

我有一个方法,可以在列表中循环并使用LinkButton控件创建链接。对于这个问题,假设这是一个颜色列表,我有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.
}
上面的代码可以很好地将当前单击的链接加粗,我遇到的问题是,假设单击的链接是红色的,因此红色将是加粗的,如果单击蓝色,我希望将链接加粗为蓝色,但未绑定为红色。我试过:

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

但是,我突然想到,虽然上面的说法可能是正确的,但我做得不对(colorClick)。我的想法是,我可能必须记住以前单击的链接并取消绑定该链接,但我不确定如何执行该操作。

您有三个选项:

  • 存储以前加粗和取消加粗的链接。
  • 迭代链接并查找一个粗体和非粗体的链接。
  • 或者在将链接设置为粗体之前取消所有粗体。 删除字体权重的代码是:

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

    我试着解开所有的东西,但似乎不起作用。我不知道如何记住以前点击的链接。