3

我在 ASP.NET 网页中使用面板来隐藏或显示控件选择以响应客户端按钮单击。简单脚本切换可见性

<script>
    function SetToAddSurvey() {

    var x = document.getElementById("NewSurveyPanel");
    if (x.style.display == "none") {
        x.style.display = "block";
    } else {
        x.style.display = "none";
    }
}
</script>

我现在需要在数据库事务之后切换服务器端的显示属性。我知道我不能使用代码

NewSurveyPanel.visible = false; 

因为它会导致控件不被渲染,并且上面的 jscript 在下次调用时会失败。

NewSurveyPanel.Attributes["display"] = "block";

也不起作用。

有一个简单的解决方案吗?

塔。

4

3 回答 3

5

试试这个

NewSurveyPanel.Attributes["style"] = "display: none";

或者

NewSurveyPanel.Attributes["style"] = "visibility: hidden";

这样做是为了像这样呈现开始标签:

<div ....... style="display: none" ....>
于 2013-04-02T20:30:27.483 回答
2

使用 CSS 类:

.hidden {
   display: none;
}

……

 NewSurveyPanel.CssClass = "hidden";
于 2013-04-02T20:30:52.383 回答
0

代码背后

NewSurveyPanel.Attributes["style"] = "display: block";

ASPX

<asp:Panel ID="NewSurveyPanel" runat="server">
    test
</asp:Panel>
<asp:Button runat="server" OnClientClick="SetToAddSurvey(); return false;" />
<script>
    function SetToAddSurvey() {

        var x = document.getElementById("<%= NewSurveyPanel.ClientID%>");
        alert(x);
        if (x.style.display == "none") {
            x.style.display = "block";
        } else {
            x.style.display = "none";
        }
    }
</script>
于 2013-04-02T20:30:43.983 回答