AJAX部分回发面板会损坏我的按钮吗?

时间:2019-04-02 15:56:56

标签: c# asp.net telerik asp.net-ajax

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

无论如何执行,我都发现位于此面板之外的按钮无法正常工作...我完全没有参与click事件。我得出的结论是,部分回发正在断开与按钮单击的连接。这听起来像是有效的解释吗?我该怎么办?

编辑添加,这是我在您提出建议后尝试的操作:

 <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”到我的页面。不太确定为什么,但是...似乎可行。

2 个答案:

答案 0 :(得分:1)

由于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>

答案 1 :(得分:0)

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