在更新面板的部分回发后执行javascript?

时间:2012-12-26 09:43:59

标签: javascript asp.net

我有一个向其添加树文件脚本的页面。

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/init.js"></script>
<script type="text/javascript" src="js/easing.js"></script>

我有一个带有下拉列表的updatepanel。当运行SelectedIndexChanged事件(更新面板的部分回发)时,不要执行javascript。

5 个答案:

答案 0 :(得分:26)

使用

function pageLoad(sender, args) {

  InitialiseSettings();
}

function InitialiseSettings(){
    // replace your DOM Loaded settings here. 
    // If you already have document.ready event, 
    // just take the function part and replace here. 
    // Not with document.ready 
    $(element).slideUp(1000, method, callback});

    $(element).slideUp({
                   duration: 1000, 
                   easing: method, 
                   complete: callback});
}

或尝试使用add_endRequest事件处理程序:

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(InitialiseSettings)

<强> 更新

更好地将所有代码从document.ready移动到InitialiseSettings函数并将其传递给 pageLoaded 事件

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitialiseSettings)

代码示例

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(InitialiseSettings)

答案 1 :(得分:20)

要在完整和部分回发中运行您的javascript,请将您的javascript代码放入javascript pageLoad()函数。

function pageLoad()
{
   //your javascript code
}

示例:

function pageLoad() {

    $(':submit').click(function () {
        CommodityArray();
    });
    $('#btn_image').click(function () {
       CommodityArray();
    });
    $(".repHeader").disableSelection();

    CommodityArray();
}

希望它有所帮助! :)

答案 2 :(得分:7)

您必须在更新面板后使用以下代码。

<script type="text/javascript" language="javascript">
var pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
pageRequestManager.add_endRequest(NewCharacterCount);
</script>

其中NewCharacterCount是您的javascript函数名称。

阅读这篇文章Sys.WebForms.PageRequestManager endRequest Event 希望它可以帮助你。

答案 3 :(得分:0)

如果您正在使用UpdatePanel,并且想要在更新面板中的内容刷新后调用javascript函数,则可以使用以下方法轻松完成。在Page body代码中,调用函数RefreshContent()

<body onload="RefreshContent()">

<script type="text/javascript">
  function RefreshContent()
  {
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
  }

  function EndRequestHandler()
  {
    alert("Add your logic here" );
  }
</script>

参考链接 http://www.infoa2z.com/asp.net/how-to-call-javascript-function-after-an-updatepanel-asychronous-request-to-asp.net-page

答案 4 :(得分:0)

您可以使用PageRequestManager client events。 sender参数将包含您需要的信息。例如,人们可以这样做:

// Register event handler
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);

/// Executed when all page content is refreshed, full page or async postback: https://msdn.microsoft.com/en-us/library/bb397523.aspx
function pageLoaded(sender, args) {
    var isPostBack = sender.get_isInAsyncPostBack();
    if(!isPostBack) return;

    // PostBack logic here.
}