我使用了一个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
}
答案 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
的值以确定服务器端的可见性。