我正在尝试为文本框实现自动建议。我检查了其他帖子似乎没有什么似乎对我有用。我在网络应用程序和网站上都尝试过。请在我的代码中找出错误。当我输入字母时在文本框中没有任何反应。我可以在浏览器中看到webservice结果。
delete.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Delete.aspx.cs"
Inherits="WebApplication2.Delete" %>
<%@ Register TagPrefix="ajaxToolkit" Namespace="AjaxControlToolkit"
Assembly="AjaxControlToolkit"%>
<!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 id="Head1" runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true"
EnablePartialRendering="true"
runat="server">
</asp:ScriptManager>
<asp:TextBox ID="myTextBox" runat="server" Width="400px" ></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender runat="server" ID="autoComplete1"
TargetControlID="myTextBox"
ServiceMethod="Information"
ServicePath="~/WebService1.asmx"
OnClientItemOut="Information"
MinimumPrefixLength="1"
CompletionInterval="1000"
EnableCaching="true"
CompletionSetCount="5"
ShowOnlyCurrentWordInCompletionListItem="true">
</ajaxToolkit:AutoCompleteExtender>
</div>
</form>
</body>
webservice1.asmx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
namespace WebApplication2
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[System.Web.Services.WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[]Information(string prefixText)
{
RDFEntities db = new RDFEntities();
var allrows = from s1 in db.RDFMatch_v where s1.RIC.StartsWith(prefixText) select s1.RIC;
return allrows.ToArray();
}
}
}
答案 0 :(得分:0)
而不是asp.net ScriptManager,尝试使用ToolkitScriptManager,如下所示:
<ajaxToolkit:ToolkitScriptManager ID="sm1" runat="server" />
答案 1 :(得分:0)
从ASPX中删除行OnClientItemOut="Information"
。您没有在JavaScript中定义信息处理程序。
然后将[ScriptService]
属性添加到您的Web服务。
用于检查正在发生的事情的便捷工具是Fiddler。它将向您显示发送到您的服务器的请求和响应。