在c#中动态改变css样式?

时间:2009-03-09 21:34:42

标签: c# asp.net

我有一些链接按钮,我在其中动态添加样式。我在一个方法中执行以下操作:

LinkButton lb = new LinkButton();
lb.Style["font-weight"] = "bold";

当点击另一个链接时,它应该展开当前点击的粗体和粗体的链接按钮,所以在执行此操作的方法中,我尝试过:

lb.Style["font-weight"] = "none";

上述方法不起作用,之前选择的链接保持粗体。

我刚刚意识到可能存在的问题。我正在创建多个链接,它看起来像是因为所有链接都被命名为lb,所以它永远不会删除粗体。我试图想办法让它记住以前选择的链接,并且只展开那个链接。

5 个答案:

答案 0 :(得分:8)

我可以建议一种替代方法吗?

设置CSS样式:

.selected { font-style: bold; }

点击链接时,将该链接的CSS类设置为“已选中”,将其他类设置为“”;

编辑:适应现有的Css类

const string MY_CLASS = "links";
lb1.CssClass = MY_CLASS + " selected"; // selected
lb.CssClass = MY_CLASS; // not selected

在定义内联样式时,您很快就会遇到麻烦,因为它们很难覆盖。

编辑2:

像这样的代码应该有用。您可能需要遍历列表中的所有LinkBut​​tons,但我不这么认为。我只是关闭了LinkBut​​tons上的ViewState。

// container for links. so you can reference them 
// outside of the creation method if you wish. I'd probably call this method in the  
// Page_Init Event.

List<LinkButton> listOfLinks = new List<LinkButton>();
const string MY_LB_CLASS = "linkButton"; // generic lb class


private void createSomeLinks() {

    for (int i = 0; i < 10; i++) {
        // create 10 links.
        LinkButton lb = new LinkButton() 
        { 
            ID = "lb" + i, 
            CssClass = MY_LB_CLASS 
        };
        lb.Click += new EventHandler(lb_Click); // Add the click event
    }

    // You can bind the List of LinkButtons here, or do something with them.
}

void lb_Click(Object sender, EventArgs e) {

    LinkButton lb = sender as LinkButton; // cast the sender as LinkButton
    if (lb != null) {
        // Make the link you clicked selected.
        lb.CssClass = MY_LB_CLASS + " selected"; 
    }
}

答案 1 :(得分:2)

尝试lb.Style.Remove(“font-weight”)。我没有测试它,但你可以尝试一下。

或者,您是否尝试过设置Font.Bold属性?

lb.Font.Bold = true;

答案 2 :(得分:1)

试试ListBox1.Attributes.Add("style","font-weight:bold");ListBox1.Attributes.Add("style","font-weight:normal");

甚至更好

// css

.active {font-weight:bold}
.notactive {font-weight:normal}

// C#

ListBox1.CssClass = "active";
ListBox1.CssClass = "notactive ";

答案 3 :(得分:0)

你可以尝试lb.Style.Remove(“font-weight”);

答案 4 :(得分:0)

在链接按钮的单击事件中将字体设置为粗体,并在单击事件本身中将启用视图状态属性设置为false,这将在另一次单击中将链接重置为正常泡沫