AJAX 部分回发面板破坏了我的按钮?

AJAX partial postback panel breaks my buttons?

所以,我已经追查了几天,我想我误诊了这个问题。我有一个带有几个按钮和占位符的 ASPX 页面,它们的可见性根据查询而变化。一切正常。但是后来我在 asp 面板内添加了一个来自服务器的带有日期时间的文本框。面板中的内容工作正常,我已经尝试了几种方案。

无论我如何操作,我发现我的按钮(位于此面板之外)无法正常工作...我根本没有进入点击事件。我得出的结论是,部分回发中断了与我的按钮点击的连接。这听起来像是一个有效的解释吗?我该怎么办?

编辑添加,这是我根据您的建议尝试的方法:

 <script type="text/javascript">
   $(document).ready(function () {
       bindMyButtons();
   });

   var prm = Sys.WebForms.PageRequestManager.getInstance();

   prm.add_endRequest(function () {
       bindMyButtons();
   });

   function bindMyButtons() {
       $('CloseNoticeButton').click(function () {
           'CloseNoticeButton_Click()'
       });

       $('#InBtn').click(function () {
           'InBtn_Click'
       });
       $('#OutBtn').click(function () {
           'OutBtn_Click'
       });
       $('.MyClass').each(function () {
           //do stuff to the MyClass class
       });
   }

已解决! F12中对运行它的建议给了我答案!我不得不补充: EnableEventValidation="false" 到我的页面。不完全确定为什么但是......它似乎有效。

您需要重新绑定侦听器,因为 DOM 由于部分回发而更改。因此,请确保在部分回发后重新绑定控件。

<script type="text/javascript">
    $(document).ready(function () {
        bindMyButtons();
    });

    var prm = Sys.WebForms.PageRequestManager.getInstance();

    prm.add_endRequest(function () {
        bindMyButtons();
    });

    function bindMyButtons() {
        $('#myButton').click(function () {
             //hanldle button click
        });

        $('.MyClass').each(function () {
            //do stuff to the MyClass class
        });
    }
</script>

运行 它在 F12 中给了我答案...非常感谢@VDWWD!我不得不在可能的页面上添加 "EnableEventValidation="false"。不知道为什么,但它解决了问题...敲木头!