如何使用javascript显示<asp:Panel>
?
我已完成以下操作但收到错误(无法读取属性样式为null)
<asp:Panel runat="server" id="panNonAfricanCountries" Visible="false">
var panNonAfricaDropDown = document.getElementById("panNonAfricanCountries")
if (dropDownFirst == "Yes") {
panNonAfricaDropDown.style.visibility = "visible";
}
答案 0 :(得分:3)
asp.net控件上的Visible="false"
导致无法在页面上呈现控件。
你在这里尝试做的是渲染它,但是用css样式让用户隐藏它直到使用javascript显示它。要归档不使用Visible,但将样式或css设置为Panel。
<asp:Panel ID="PanelId" runat="server" Visible="true" style="visibility:hidden" >
Some Content here...
</asp:Panel>
asp.Panel
呈现为div
,您在网页上的html可能会显示为:
<div id="PanelId" style="visibility:hidden">
Some Content here...
</div>
我说可能是因为我们不确定Id是如何呈现的。要获得它,我们使用PanelId.ClientID
,您的最终JavaScript代码将是:
var panNonAfricaDropDown = document.getElementById("<%=PanelId.ClientID%>");
if (dropDownFirst == "Yes" && panNonAfricaDropDown) {
panNonAfricaDropDown.style.visibility = "visible";
}
答案 1 :(得分:2)
ASP.NET会破坏服务器上运行的元素的名称。您必须找到受损的名称,然后对该名称执行document.getElementById。
或者,您可以使用asp:panel的ClientIDMode属性来关闭修改(http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode.aspx)