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"。不知道为什么,但它解决了问题...敲木头!
所以,我已经追查了几天,我想我误诊了这个问题。我有一个带有几个按钮和占位符的 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"。不知道为什么,但它解决了问题...敲木头!