我想要操纵cssclass属性的一对LinkButtons。
之前我单独使用每个LinkButton来更改cssclass,它在回发时完美运行。例如。 lnkbtnHome.CssClass = "tab";
但随着时间的推移,项目增加了,所以我认为这可能是更好的方法,我决定使用Listcollection并使用foreach
循环来做同样的事情。
以下是我目前使用的代码。
默认情况下(页面加载时)第一个按钮具有不同的类tabsel
,我想通过将类设置为tab
来重置所有按钮的类。经过调试,我可以看到cssclass被修改但它没有在浏览器中更改。
我错过了什么吗?
声明:
static List<LinkButton> lnklist;
在PageLoad:
下lnklist = new List<LinkButton>();
lnklist.Add(lnkbtnHome);
lnklist.Add(lnkbtnSubject);
lnklist.Add(lnkbtnReport);
回发后:
foreach (var lnkbtn in lnklist){
lnkbtn.CssClass = "tab";
}
答案 0 :(得分:2)
从不在ASP.NET中使用静态字段!
你:
我使用静态来避免在回发时丢失项目。
但这是HTTP的本质。它是一种无状态协议。您应该以与ASP.NET相同的方式重新创建每个回发的所有控件。否则,由于ASP.NET是一个多线程环境,因此您很容易受到各种问题的攻击。你可以将它存储在Session
中,但我会反对它。 LinkButton
是一个webcontrol,需要成为当前页面控件集的一部分。此页面将在其生命周期结束时销毁。