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

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



当年话下
浏览 84回答 2
2回答

慕慕森

您需要重新绑定侦听器,因为 DOM 由于部分回发而更改。因此,请确保在部分回发后重新绑定控件。<script type="text/javascript">&nbsp; &nbsp; $(document).ready(function () {&nbsp; &nbsp; &nbsp; &nbsp; bindMyButtons();&nbsp; &nbsp; });&nbsp; &nbsp; var prm = Sys.WebForms.PageRequestManager.getInstance();&nbsp; &nbsp; prm.add_endRequest(function () {&nbsp; &nbsp; &nbsp; &nbsp; bindMyButtons();&nbsp; &nbsp; });&nbsp; &nbsp; function bindMyButtons() {&nbsp; &nbsp; &nbsp; &nbsp; $('#myButton').click(function () {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;//hanldle button click&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; &nbsp; &nbsp; $('.MyClass').each(function () {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //do stuff to the MyClass class&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; }</script>

慕后森

在 F12 中运行它给了我答案......非常感谢@VDWWD!我不得不在可能的页面上添加“EnableEventValidation="false"。不知道为什么,但它解决了问题......敲木头!
打开App,查看更多内容
随时随地看视频慕课网APP