【问题标题】:run javascript after updatepanel partial postback在 updatepanel 部分回发后运行 javascript
【发布时间】:2014-11-15 09:33:06
【问题描述】:

我在页面标题中有一个 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>

当我在带有单选按钮的更新面板中使用它时它可以工作:

<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 不起作用。 我尝试了一些互联网上的东西,但我无法做到,对不起我的英语。

【问题讨论】:

    标签: javascript asp.net devexpress


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢你的回答,我之前试过但是不行,你不觉得是因为使用了id1、id2、id3之类的参数吗?!
    • 使用 Jquery Change 事件而不是 DevXpress ClientSideEvents 事件。
    • 使用此链接将展示如何在 jQuery 中绑定 RadioButton SelexctedIndexChange 事件 - forums.asp.net/t/…
    【解决方案2】:

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

    【讨论】:

    • 你们都对,但我认为问题在于如何编写代码!感谢您的回答,但它不起作用,我还将代码放在 load() 函数中并尝试像 一样使用它,但它也不起作用。
    猜你喜欢
    • 2010-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 2015-02-24
    相关资源
    最近更新 更多