1

empcode、empname などを入力する EmployeeMaster ページがあります。empcode を入力した後、empname テキストボックスをクリックすると、そのような empcode が存在しない場合は成功イメージを表示し、empcode が存在する場合は失敗イメージを表示したいと考えています。

jquery ajaxメソッドを使用してこれを表示する方法はありますか?

テキストボックス変更機能を呼び出そうとした方法は次のとおりです。

 $(document).ready(function(){
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    //Raised before processing of an asynchronous postback starts and the postback request is sent to the server.
    prm.add_beginRequest(BeginRequestHandler);
    // Raised after an asynchronous postback is finished and control has been returned to the browser.
    prm.add_endRequest(EndRequestHandler);    
    AutoComp();//function for autofill textbox and it works perfectly.     
    $("#<%=txtEmpCode.ClientID %>").change(checkEmpCode);//calling textbox change  function

});
function checkEmpCode() {
    alert('hai');
}

ここでアラートが表示されません。この問題を解決するにはどうすればよいですか....

4

1 に答える 1

0

これは、empcode が重複しているかどうかを確認する Web サービスを呼び出す JavaScript です。重複している場合、メソッドは 0 を返します。

<script type="text/javascript"> 
  $(function() {
    $("#empcode").change(checkEmpCode);
  });

  function checkEmpCode() {
    $.ajax({
      type: "POST",
      url: "Service.asmx/CheckEmpCode",
      data: "{empcode: '" + $('#empcode').val() + "'}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function(response) {            
        if (response.d != "0") {
          $("#failureimage").show();
        }
        else{
          $("#successimage").show();
        }

      }
    });
  }

</script> 

Webサービスにはこのメソッドがあります

[WebMethod]
public int CheckEmpCode(string empcode)
{
  string connect = @"Server=SERVER;Database=Database;Trusted_Connection=True;";
  string query = "SELECT COUNT(*) FROM Employee WHERE empcode = @empcode";
  using(SqlConnection conn = new SqlConnection(connect))
  {
    using(SqlCommand cmd = new SqlCommand(query, conn))
    {
      cmd.Parameters.AddWithValue("empcode", empcode);
      conn.Open();
      return (int)cmd.ExecuteScalar();
    }
  }
}
于 2012-09-27T18:28:44.603 に答える