2016-10-25 11 views
0

PageMethods(AJAX)を使用して、C#メソッドの背後にある非常に単純なコードを呼び出そうとしています。私はEnablePageMethods = trueを持っており、WebMethod public staticのメソッドの背後にあるコードを持っています。 WebMethodでもScriptMethodを試しましたが、何も動作しません。私は設定ファイルを変更しようとしましたが、運はありません。PageMethodsを使用してコードビハインドメソッドが呼び出されない

<script type="text/javascript"> 
    function ShowAvailability() { 
     PageMethods.btnCheck_Click(document.getElementById("<%=txtUserName.ClientID%>").value, OnSuccess) 
    }; 
      function OnSuccess(response) { 
       alert("On Success"); 
       var mesg = document.getElementById("mesg"); 
       switch (response) { 
        case "true": 
         mesg.style.color = "green"; 
         mesg.innerHTML = "Available"; 
         break; 
        case "false": 
         mesg.style.color = "red"; 
         mesg.innerHTML = "Not Available"; 
         break; 
        case "error": 
         mesg.style.color = "red"; 
         mesg.innerHTML = "Error occured"; 
         break; 
       } 
      } 
      function OnChange(txt) { 
       document.getElementById("mesg").innerHTML = ""; 
      } 

      function test() 
      {    
      } 
</script> 

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="sm" EnablePageMethods="true" EnablePartialRendering="true" runat="server" /> 
<div> 
     UserName : 
<asp:TextBox ID="txtUserName" runat="server" 
    onkeyup="OnChange(this)"></asp:TextBox> 
     <%--<asp:Button ID="btnCheck" runat="server" Text="Show Availability" OnClientClick="btnCheck_Click(), return false;"></asp:Button>--%> 
     <br /> 
     <button id="btncheck" onclick="ShowAvailability()">Show Availability</button> 
     <span id="mesg"></span> 

    </div> 
</form> 
+0

を書くだから何が起こるでしょうか?ブラウザコンソールには何が表示されますか? – Stilgar

答えて

0

OnClientClickを使用すると、コードビハインドメソッドを呼び出すことはできません。これは、btnCheck_Clickという名前のスクリプト関数を呼び出します。あなたは、AJAXを使用したい場合は

protected void btnSearch_Click(object sender, EventArgs e) 
    { 
     //your code 
    } 

use-

Use this- 


    <asp:Button ID="btnSearch" runat="server" ClientIDMode="Static" Text="Search" CssClass="button" OnClick="btnSearch_Click" /> 

と同じページの背後にあるコードインチその後、クライアント側で

Use this- 



<asp:Button ID="btnSearch" runat="server" ClientIDMode="Static" Text="Search" CssClass="button" OnClientClick="btnSearch_Click()" /> 

をdeclare-とスクリプトのタグ呼び出しAJAX

function btnSearch_Click() 
    { 
     jQuery.ajax({ 
       url: "Dashboard.aspx/getUserDetails", /* getUserDetails is a web method */ 
       type: "POST", 
       data: jsondata, /* jsondata= passed parameter in json format */ 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (data) { }, 
       error: function() { 
        $('#Loadingimage').hide(); 
        jAlert("Please try again later", 'Moderators'); 

       } 
      }); 
    } 

とDashboard.aspx.csでは、このコードに

 [WebMethod] 
    public static String getUserDetails(string strUserId) 
    { 
     return ""; /* for string only */ 
    } 
関連する問題