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