我有几个< li>在ASP.NET页面上具有不同id的元素:
<li id="li1" class="class1"> <li id="li2" class="class1"> <li id="li3" class="class1">
并可以使用JavaScript改变他们的课程:
li1.className="class2"
但是有没有办法改变< li>元素类使用ASP.NET?它可能是这样的:
WebControl control = (WebControl)FindControl("li1"); control.CssClass="class2";
但是FindControl()不符合我的预期.有什么建议么?
提前致谢!
解决方法
FindControl方法搜索服务器控件.也就是说,它查找属性“runat”设置为“server”的控件,如:
<li runat="server ... ></li>
因为您的< li>标签不是服务器控件,FindControl找不到它们.您可以将这些“runat”属性添加到这些控件中,或者使用ClientScript.RegisterStartupScript包含一些客户端脚本来操作该类.
System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("<script language=\"javascript\">"); sb.Append("document.getElementById(\"li1\").className=\"newClass\";") sb.Append("</script>"); ClientScript.RegisterStartupScript(this.GetType(),"MyScript",sb.ToString());