是否可以根据类别显示/隐藏代码隐藏? 我已经能够使用span的id而不是类。
标记:
<span runat='server' id='myId' class='myClass'>some text</span>
代码隐藏:
protected override void OnPreRender(EventArgs e)
{
// This works
myId.Visible = false;
// This doesn't work
myClass.Visible = false;
}
我收到错误&#34; myClass名称在当前上下文中不存在&#34;。 但是代码隐藏与id没有问题。
答案 0 :(得分:2)
不,没有任何东西可以让你按类别引用某些东西;只有ID实际上在代码隐藏中有效。您可以通过ID找到对象,然后检查它的类,或者您可以围绕某些内容定义容器控件:
<asp:Panel ID="X" runat="server">
.
.
</asp:Panel>
使用此功能,您可以遍历面板中的控件,检查类并处理它,如:
foreach (var c in X.Controls)
{
if (c is WebControl && ((WebControl)c).CssClass == "myClass")
//Do something
else if (c is HtmlControl && ((HtmlControl)c).Attributes.ContainsKey("class") && ((HtmlControl)c).Attributes["class"] == "myClass")
//Do something
}
这是可能的。您也可以在页面级别执行此操作,但必须以递归方式执行此操作,这可能会影响您的应用程序性能。
答案 1 :(得分:0)
您可以尝试这样的事情:
<span runat='server' id='myId' class='myClass'>some text</span>
...
</span>
myId.Attributes.Add("style", "display:none;");
答案 2 :(得分:0)
当然不会。您正在使用班级名称作为Id。
您可以使用Page
对象上的Contols Collection选择控件。
foreach (Control c in Page.Controls)
{
if (c.CssClass == "myClass")
{
c.Visible=false;
}
}