2017-01-20 2 views
0

Я пытаюсь вызвать функцию в кодовом списке моей страницы .aspx после полного отображения окна. Я попытался с помощью:Функция вызова в Codebehind aspx из Javascript Throws Error

<script type="text/javascript"> 
    $(document).ready(function() { 
     PageMethods.CheckForPageChange(); 
    }); 
</script> 

И выдает следующее сообщение об ошибке:

0x800a1391 - JavaScript ошибка времени выполнения: «$» не определена

я смог window.onload, чтобы отобразить окно предупреждения, так Я пытался использовать его как это:

<script type="text/javascript"> 
    window.onload = function() { 
     PageMethods.CheckForPageChange(); 
    } 
</script> 

Но он бросает ошибку «PageMethods не определен».

У меня есть эта внутренность «форма» тег:

 <asp:ScriptManager runat="server" ID="ScriptManager1" EnablePageMethods="true"></asp:ScriptManager> 

И это в моем коде:

[WebMethod] 
    public void CheckForPageChange() 
    { 
     throw new NotImplementedException(); 
    } 

Может кто-то пожалуйста, скажите мне, что я здесь отсутствует? Любая помощь очень ценится!

+1

подобный ... http://stackoverflow.com/questions/18242334/pagemethods-is-not-defined-in-aspx-page –

+1

Ошибка $ была связана с тем, что вы не загрузили jQuery к тому времени, эта линия. – mason

+1

pagemethods должен быть статичным. – bashkan

ответ

1

0x800a1391 - JavaScript runtime error: '$' is undefined

Убедитесь, что JQuery был успешно загружен.

it throws the error "PageMethods is undefined".

1- Вы должны сделать свой сервер метод на стороне, как статический метод выглядит следующим образом

[WebMethod] 
public static void CheckForPageChange() 
{ 
    throw new NotImplementedException(); 
} 

2- Вызвать метод, как тот стороне сервера

<script type="text/javascript"> 
function OnSuccess(response){ 
    //Do Stuff 
} 
function OnError(error){ 
    //Do Other Stuff 
} 
$(document).ready(function() { 
    PageMethods.CheckForPageChange(OnSuccess, OnError); 
}); 

3- положите свой скрипт за пределы <asp:ScriptManager>, поместите его в отдельный тег <script>

0

Причина первой ошибки заключается в том, что вы не включаете jQuery на странице aspx.

Следующая ошибка правильно, потому что у вас нет runat="server". Попробуйте изменить свой ScriptManager так:

<asp:ScriptManager ID="ScriptManagerMain" 
     runat="server" 
     EnablePageMethods="true" 
     ScriptMode="Release" 
     LoadScriptsBeforeUI="true"> 
</asp:ScriptManager> 
+0

OP имеет 'runat =" сервер "в вызове' ScriptManager'. Я думаю, вы хотите указать свойство LoadScriptsBeforeUI. –