2016-12-12 62 views
0

如果未處理Updatepanel刷新,則Javascript代碼不起作用。有幾種方法來處理案件。我更喜歡其中一個具有下面的實現;如何刪除UpdatePanel在ASP.NET中刷新javascript代碼重複?

<script language="javascript" type="text/javascript"> 

**Javascript code...** 

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
if (prm != null) { 
    prm.add_endRequest(function (sender, e) { 
    if (sender._postBackSettings.panelsToUpdate != null) { 

    **Duplicated Javascript code, same as above** 

    } 
    }); 
} 
</script> 

但是,我不想編寫相同的JavaScript代碼兩次。那麼,我該如何解決這個問題呢?

更新:我不想在本節中調用函數。如何在沒有重複的部分找到函數?

回答

1

你把代碼放在一個函數中,並從兩個地方調用函數。

// The first call 
doSomething(); 

var prm = Sys.WebForms.PageRequestManager.getInstance(); 
if (prm != null) { 
    prm.add_endRequest(function (sender, e) { 
    if (sender._postBackSettings.panelsToUpdate != null) { 

     // The second call 
     doSomething(); 
    } 
} 

function doSomething() { 
    // Code goes here 
} 

如果函數從那裏你怎麼稱呼它的地方需要informatino,定義參數的函數(function doSomething(param1, param2)等),當你調用它(doSomething("I'm the first", "I'm the second")等)傳遞參數。

+0

但也有一些ajax請求和回調函數。我如何實現這些?喜歡; '$( 「#元件」)自動完成({ 源:功能(請求,響應){ $就({'.... 也點擊功能;'$( 'div.detailfilterbtn') .click(function(){} –

+0

@CeylanB .:這些只是'doSomething'中的代碼 –

+0

我有一個有參數的函數有問題,例如:函數GetSelectedItem(lnk)它是從HTML元素調用的,例如:'onclick =「GetSelectedItem(this);''所以,我需要在面板更新部分找到這個函數,所以我該怎麼做? –