我有一些链接按钮,我在其中动态添加样式.我在一个方法中做了以下事情:
LinkButton lb = new LinkButton(); lb.Style["font-weight"] = "bold";
当单击另一个链接时,它应该展开当前单击的粗体和粗体的链接按钮,所以在执行此操作的方法中,我尝试过:
lb.Style["font-weight"] = "none";
以上不起作用,先前选择的链接保持粗体.
我刚刚意识到可能存在的问题.我正在创建多个链接,它看起来像是因为所有链接都被命名为lb,所以它永远不会删除粗体.我试图想办法让它记住以前选择的链接并且只展开那个链接.
我可以建议一种替代方法吗?
设置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:
像这样的代码应该工作.您可能需要遍历列表中的所有LinkButtons,但我不这么认为.我只是关闭LinkButtons上的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. ListlistOfLinks = 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"; } }