有很多代码,所以我想用文字简短地解释这个问题。我有一个母版页,其中包含对 javascript 文件的所有引用,并拥有使用母版页的页面。我在我的页面中使用更新面板,在更新面板内有一些表单,包括具有回发功能的表单(即下拉列表)。问题是当状态发生变化并发生部分回发时,由于这些 javascripts 具有一些功能和效果的表单,然后失去所有功能。任何帮助,将不胜感激。
最佳答案
这是因为在使用更新面板进行部分回发后,您需要重新初始化 javascript。这是一个通用示例
<script type="text/javascript">
// if you use jQuery, you can load them when dom is read.
$(document).ready(function () {
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);
// Place here the first init
});
function InitializeRequest(sender, args) {
}
function EndRequest(sender, args) {
// after update occur on UpdatePanel re-init what you need
}
</script>
相关问题:
Asp.Net UpdatePanel in Gridview Jquery DatePicker
How to get Id update panel that initial a request in javascript
net 4 之后你也可以简单的使用
pageLoad
函数,类似于OnLoad 函数,不过是由asp.net 处理的,在第一次页面加载时调用,每次ajax 更新后也会调用。function pageLoad()
{
// init here your javascript
// This is called when the page load first time
// and called again each time you have an Update inside an UpdatePanel
}
引用:http://msdn.microsoft.com/en-us/library/bb386417(v=vs.100).aspx
关于asp.net - UpdatePanel 部分回发后如何保留 javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14769641/