如何在UpdatePanel部分回发后保持javascript

时间:2013-02-08 09:41:53

标签: asp.net updatepanel ajaxcontroltoolkit

有很多代码,所以我想用语言解释这个问题。我有一个母版页面,其中包含对javascript文件的所有引用,并具有使用母版页的页面。我在我的页面和更新面板中使用更新面板,有一些形式,包括一个具有回发功能(即下拉列表)。问题是当状态发生变化并发生部分回发时,由于那些javascripts而具有某些功能和效果的表单将失去所有功能。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:5)

这是因为在使用“更新”面板进行部分回发后,您需要重新初始化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