所以,我已经追逐了几天,但我认为我误诊了这个问题。我有一个带有一些按钮和占位符的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”到我的页面。不太确定为什么,但是...似乎可行。
答案 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”。不知道为什么,但是它解决了问题...敲门!