找出面板是否可见

时间:2013-06-21 07:17:26

标签: c# asp.net webforms

我使用了一个asp.net向导控件,我在向导步骤中使用了很多面板。每个面板都有一个类,其中样式显示:none。当用户单击“+”按钮时切换类和将可见性更改为显示:块,这工作正常。现在为了从面板读取控件的值我试图只读取其面板设置为visible的控件。但这似乎不起作用它显示可见为真所有面板即使它有样式显示:无

我试过这个:

 if ((this.Form.FindControl("ContentPlaceHolder1").FindControl("wizard").FindControl("panel" + i)).Visible)
{
//where i is the current count.I have named panel in a continuous order like panel1,panel2....etc This code executes even if the panel is hidden in browser
}

2 个答案:

答案 0 :(得分:0)

您可以访问ASP.NET控件的属性,例如访问

Panel1.Attributes[("Style")]

然后你可以检查属性“Style”是否包含“disyplay:none”样式。您还可以在http://msdn.microsoft.com/en-us/library/kkeesb2c(v=vs.100).aspx查看此链接。

答案 1 :(得分:0)

样式display和控件visibility是两回事。

如果您将控件设置为Visible='false';服务器根本不会向客户端发送/呈现此控件。 另一方面,样式display: none将;因为css风格,它不会被显示出来。

所以display: none!= Visible='false'

如果您需要回发display是否设置为none;您可以在HiddenField旁边添加panel;使用javascript将其值设置为Visible / Hidden,然后检查HiddenFiled的值以确定服务器端的可见性。