Как сделать этот трюк в методе CallServer при программной реализации клиентских обратных вызовов без обратных передач? - PullRequest
0 голосов
/ 22 июня 2010

Из этого примера мы можем перезвонить серверу из JavaScript без обратной отправки, но я хочу сделать метод CallServer для возврата результата, и я пытаюсь сделать это, как показано ниже

    string callBackReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "function(result) {alert(result);response = result;}", "context", "function(result) {response = 'Err';}", true);
    string callbackScript = "function CallServer(arg, context) { var response; " + callBackReference + "; return response;}";
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "CallServer", callbackScript, true);

ив JavaScript я делаю следующее

response = CallServer("username", "");
 alert("response:" + response);

всегда ответ равен undefined, хотя я делаю его асинхронным ...
Может ли кто-нибудь помочь мне найти решение для такой проблемы?

ПРИМЕЧАНИЕ: Моя главная проблема, которая заставила меня попробовать вышеуказанное решение: мне нужно вызвать метод CallServer в OnClientClick кнопки Asp и вернуть true или false, как показано ниже

 <asp:Button ID="Button1" runat="server" Text="Button" 
        OnClientClick="return CallServer('arg','');" onclick="Button1_Click" />

Ответы [ 2 ]

1 голос
/ 24 июня 2010

Вы можете использовать методы страниц ASP.NET для таких проблем.
Вот пример .

Также вы можете использовать jQuery для вызова ASP.NETМетоды страницы .

Конечно, вам нужно включить "EnablePageMethods" из ScriptManager, чтобы включить PageMethods.

0 голосов
/ 17 февраля 2014

HandleResult получит результаты из GetCallbackResult для дальнейшей обработки. Добавьте приведенный ниже код на страницу aspx

    <script type="text/javascript">

    //the parameter arg is what is returned from GetCallbackResult
    function HandleResult(arg, context) {
        alert(arg);
    }

</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...