我有一个asp面板,如下所示。
<asp:Panel ID="panele" runat="server">
<tr><td><fieldset ID="fsFieldset" class="crossbrowserfieldselect">
<legend align="left">Show the current values</legend>
</td>
<tr> <td><asp:Textbox id ="txtstudent" runat"server"></td>
<asp:panel>
字段集中还有更多的文本框和下拉列表,为了降低复杂性,我没有放入整个代码。我有这个aspx页面,它有3种模式(选择,更新,插入)。在选择模式下,aspx页面不应显示面板。默认情况下,asp面板是可见的。我在其中一个驱动选择模式的代码中的函数中使其不可见,如下所示。在这种模式下,所有控件都是只读的。
enter code here
function selectvalues ()
{
panele.Visible=False; /*code behind */
}
在插入模式下,应显示面板并按预期工作。在更新模式下,当用户尝试编辑出生日期值(它是日期选择器控件)时,应显示面板。更新模式也使用上述功能,仅当选择出生日期值时,才会显示面板。因此我写了一个javascript代码来显示面板如下。
<Datechooser Width="100px" runat="server" ID="BirthDate"
onselect="return setpanelcontrols();"
</Datechooser>
enter code here
function setpanelcontrols()
{
var objpanele=document.getElementById("<%=panele.ClientID%>");
objpanele.style.display="block";
return true;
}
当我选择出生日期时,不显示面板。我不知道什么是错的。我真的很感激你的帮助。
enter code here
答案 0 :(得分:1)
Visible=False
的控件不会呈现为HTML的一部分。尝试在后面的代码中隐藏并显示这样的CSS:
panele.CssClass= "myHidePnlclass";
或我认为适合您当前的代码:
panele.Style["display"] = "none";
答案 1 :(得分:0)
当你从后面的代码中将asp:Control Visible Property设置为false时。浏览器不呈现该元素,因此无法从客户端(jquery,javascript)显示该元素。
将其隐藏在替换后面的代码中:
panele.Visible=False;
使用
panele.Attributes.Add("style", "display:none");
答案 2 :(得分:0)
我发现标签存在问题。面板呈现为div,我已经应用了可见隐藏的CSS样式。最后当我试图检查元素时,我发现了一件有趣的事情。下面是我之前发布的asp代码。但是我添加了一个div来看看发生了什么。
<tr><td><fieldset ID="fsFieldset" class="crossbrowserfieldselect">
<legend align="left">Show the current values</legend>
</td>
<tr> <td><asp:Textbox id ="txtstudent" runat"server"></td>
<asp:panel>
</div>
下面是css via inspect element
<div id="BasicInfo_pane" style="visibility:hidden;">
<div id="BasicInfo_panele" class="styleset1" style="visibility:hidden;display:none;">
</div></div>
<table>
<tbody>
<tr>
<td> fieldset="fsFieldset"........ </td> </tr> </tbody> </table>
显然由于某种原因,面板在fieldset之前已经结束,因为div在fieldset之前结束(我认为开始和结束标签没有正确组织,不知道为什么)。我认为这就是面板内的字段集未被隐藏的原因。 Panel是隐藏的,当fieldset未隐藏时,输出显示在浏览器中,我误解了该面板未被隐藏。
答案 3 :(得分:-1)
使用
ClientIDMode="Static"
在asp面板上,然后在JavaScript中:
function selectvalues ()
{
if(YOUR CONDITION){
$('#panele').hide();
}
}