2014-07-02 24 views
0

確定,如果在SQL表檢查如果C#功能的實現在javascript函數

System.Web.Services.WebMethod] 
     public static bool Check(string ID) 
     { 
      string connectionString = ConfigurationManager.ConnectionStrings["SimpleDB"].ToString(); 
      using (SqlConnection con = new SqlConnection(connectionString)) 
      using (SqlCommand cmd = new SqlCommand(@" 
         IF EXISTS(SELECT 1 FROM Book Where Name = @ID) 
         SELECT 1 ELSE SELECT 0", con)) 
      { 
       con.Open(); 
       cmd.Parameters.AddWithValue("@ID", ID); 
       int result = Convert.ToInt32(cmd.ExecuteScalar()); 
       return (result == 1); 
      } 
     } 

存在行,所以我有它返回true的C#的功能,我有另一個JavaScript函數,但似乎這個「PageMethods.Check( btn.id)」說法是不正確的,即使這樣的行中的SQL表中存在,所以我想我不是正確地檢查它,我想知道是否該問題是在JavaScript或C#

function InIt(k ,l) 
      { 
       for (i = 1; i <= k; i++) { 
        for (j = 1; j <= l; j++) { 
         var btn = document.createElement("BUTTON"); 
         btn.id = i + "_" + j; 
         if (PageMethods.Check(btn.id) == true) { 
          //DO SOMETHING 
         } 
         else {//DO SOMETHING ELSE 
         } 

        } 
       } 
      } 

回答

0

PageMethods需要有一個回撥功能,如OnSuccessonFailure處

使用您的onSuccess函數檢查返回值是真實的

這樣

PageMethods.Check(btn.id,OnSuccess,Onfailure); 

那麼的onSuccess功能

function OnSuccess(data) 
{ 
if(data) 
// do something 
else 
// do something else 
} 

我希望你有在您的<asp:ScriptManager>

中設置
+0

好,我有我的ScriptManager設置和我試圖withouth的的onSuccess和onFailure處另一PageMethods功能,他們也許工作別的東西是錯誤 –

+1

@Arch_interpreter你能調用C#功能? –

+0

我如何檢查 –

0

確保在腳本管理器中將EnablePageMethods屬性設置爲true。否則,PageMethods將無法按預期工作。

<asp:ScriptManager runat="server" EnablePageMethods="true"> 

它按照預期的方式在您的沙箱中使用您的代碼。

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

<script type="text/javascript"> 
     $(document).ready(function() { 
      if (PageMethods.Check(10) == true) { 
       alert(true); 
      } 
      else { 
       alert(false) 
      } 
     }); 
    </script> 


[WebMethod] 
public static bool Check(string ID) 
{ 
    if (ID.Length > 0) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
}