为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
当年话下 2022-11-22 15:11:46

所以,我已经追查了几天,我想我误诊了这个问题。我有一个带有几个按钮和占位符的 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" 到我的页面。不完全确定为什么但是......它似乎有效。



查看完整描述

2 回答

?
慕慕森

TA贡献1580条经验 获得超17个赞

您需要重新绑定侦听器,因为 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>


查看完整回答
反对 回复 2022-11-22
?
慕后森

TA贡献1514条经验 获得超5个赞

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



查看完整回答
反对 回复 2022-11-22
  • 2 回答
  • 0 关注
  • 8 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信