2012-09-11 61 views
3

我有一個頁面方法,它在服務器端進行一些複雜的驗證。 我有一個按鈕來驗證。 JavaScript代碼低於:從asp.net中的頁面方法返回值

function resultOfValidation(result); 
{ 
    return result; 
} 

function IsValidDate() 
{ 
    PageMethods.ComplicatedValidation(resultOfValidation); 
} 

C#代碼:

[WebMethod] 
public static bool ComplicatedValidation() 
{ 
    return true; 
} 

,但我想去做

function IsDateTimeAvailable() 
{ 
    var result= PageMethods.ComplicatedValidation(); 
} 

按我所知,這是不可能的。如果你有其他的選擇, 然後請指導我。

回答

3

兩對客戶端的WebMethod最後的參數是成功和錯誤回調。你可以使用它們。 reuturn值作爲參數傳遞給這些函數。

+0

我需要返回值在同一塊,我在調用方法。 –

+0

@SanjayGupta在這種情況下,你必須同時調用它。看看[這個](http://weblogs.asp.net/ricardoperes/archive/2009/03/06/calling-web-service-methods-synchronously-in-asp-net-ajax.aspx)文章 –

+0

謝謝。沒有Web服務類,上面的例子是可能的。 –

3

More...

function GetValue() 
{ 
    return PageMethods.GetValueFromServer( 
    function(result) 
     { 
      // The result that is returned from server 
      //Now do what ever you would like to do. 
     } 
    ); 
} 
+0

我必須對函數內部的值做任何事情。 –

+0

假設我有一個按鈕,並希望在回發之前進行驗證。 –

+0

btn1.OnClientClick =「return IsDateTimeAvailable()」 –

0

你可以嘗試這樣的事情:

  var secuencias = new String; 
      jQuery("#add_note").click(function() { 

                $.ajax({ 
                type: "POST", 
                url: '<%= ResolveUrl("~/Paginas/EscuchadorAlertas.aspx/ConsultarAlertas") %>', 
                data: "{}", 
                contentType: "application/json; charset=utf-8", 
                dataType: "json", 
                async: false, 
                success: function(msg) { 
                 secuencias = msg.d; 
                }, 
                error: function() { 
                 alert("error"); 
                } 
                }); 
               }); 

正如你可以看到裏面的變量secuencia存儲功能去的ConsultarAlertas的值,它是一個PageMethods功能,只是返回一個字符串。