在updatepanel部分回发后运行javascript

时间:2014-11-15 09:33:06

标签: javascript asp.net devexpress

我在页眉中有一个JavaScript函数,用于更改页面中内容的可见性:

<script type="text/javascript">
// <![CDATA[
    function toggleVis(id1, id2, id3) {
        var element = document.getElementById(id1).style.visibility;
        if (element == 'hidden') {
            document.getElementById(id1).style.visibility = 'visible';
            document.getElementById(id2).style.visibility = 'visible';
            document.getElementById(id3).style.visibility = 'visible';
        }
        else {
            document.getElementById(id1).style.visibility = 'hidden';
            document.getElementById(id2).style.visibility = 'hidden';
            document.getElementById(id3).style.visibility = 'hidden';
        }
    }

// ]]>
</script>

当我在updatepanel中使用单选按钮时,它可以正常工作:

<dx:ASPxRadioButton ID="RB1" CssClass="btnInline" runat="server" Text="Yes">
<ClientSideEvents CheckedChanged="function(s, e) { toggleVis('Label33', 'textbox','Label34');}" />
</dx:ASPxRadioButton>
<dx:ASPxLabel ID="Label33" CssClass="btnInline" runat="server" Text="Label33" Style="visibility: hidden" />
<dx:ASPxTextBox ID="textbox" CssClass="btnInline" runat="server" Style="visibility:hidden" Width="40px" />
<dx:ASPxLabel ID="Label34" CssClass="btnInline" runat="server" Text="Label34" Style="visibility: hidden" />

问题是当我单击按钮清除表单时,之后通过检查单选按钮javascript不起作用。 我已经尝试了一些互联网上的东西,但我无法做到,对不起我的英语。

2 个答案:

答案 0 :(得分:0)

使用add_endRequest()。这将在部分回调中触发。

<script type="text/javascript">
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(toggleVis);
</script>
  • 将以上代码放入.aspx页面的<head>标记中。 会工作:))

答案 1 :(得分:0)

Prog是对的,当页面部分回发时,您的功能将不会被调用。为了确保每次调用它时都会调用它,如:     window.onload = function(){toggleVis(id1,id2,id3); Sys.WebForms.PageRequestManager.getInstance()。add_endRequest(toggleVis);}; function toggleVis(id1,id2,id3){}