aspx コードは次のとおりです。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestingJqueryAutoComplete.aspx.cs"
Inherits="ProjectForTestingPurpose.TestingJqueryAutoComplete" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js" type="text/javascript"></script>
<style type="text/css">
*
{
margin:0; padding:0;
}
</style>
<script type="text/javascript">
$(document).ready(function () {
$("#txtCities").autocomplete({
minLength: 2,
source: function (request, response) {
$.ajax({
type: "POST",
dataType: "json",
url: "/GenericAjaxHandler.ashx",
data: { text: request.term, type: "requestcities" }
}); //ajax
}, //source
success: function (data) {
debugger;
alert(data);
response($.map(data, function (item) {
return {
label: item.name,
value: item.name
}
}
)//function
); //response
}, //success
error: function (response) {
debugger;
alert(response.responseText);
},
failure: function (response) {
debugger;
alert(response.responseText);
},
select: function (event, ui) {
alert("hello");
}
}); // autocomplete
}); // document ready
</script>
都市
サーバー側のコード。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ProjectForTestingPurpose
{
/// <summary>
/// Summary description for GenericAjaxHandler
/// </summary>
public class GenericAjaxHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/json";
if (context.Request["type"].ToString().ToLower() == "requestcities")
{
string response = string.Empty;
response = "[{\"name\":\"Islamabad\"},{\"name\":\"Lahore\"},{\"name\":\"Karachi\"}]";
context.Response.Write(response);
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
}
jquery autocomplete の成功ハンドラーが呼び出されないという問題がわかりません。