0

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

我试过这个:

 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
}
4

2 回答 2

0

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

Panel1.Attributes[("Style")]

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

于 2013-06-21T07:23:58.317 回答
0

风格display和控制visibility是两个不同的东西。

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

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

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

于 2013-06-21T07:28:45.310 回答