2016-10-25 4 views
0

Я пытаюсь вызвать очень простой код для метода C# с помощью PageMethods (AJAX). У меня есть EnablePageMethods = true и у меня есть мой код, поскольку WebMethod public static. Я также пробовал ScriptMethod с помощью WebMethod, но ничего не работало. Я тоже пытался изменить файл конфигурации, но не повезло.Код за методом, который не вызывается с использованием метода 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.

Use this- 


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

и в коде позади той же странице пользование-

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

в случае, если вы хотите использовать Ajax. то в конце клиента declare-

Use this- 



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

и в сценарии тега вызова 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 */ 
    } 
Смежные вопросы