当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《在c#中动态改变css样式?》经验,为你挑选了1个好方法。

我有一些链接按钮,我在其中动态添加样式.我在一个方法中做了以下事情:

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

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

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

以上不起作用,先前选择的链接保持粗体.

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



1> Armstrongest..:

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

设置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 listOfLinks = new List();
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"; 
    }
}

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有