使用aspnet 3.5。这是我的代码。是的我知道我应该使用jquery。
当我在文本框中输入内容时没有任何反应。我在网络服务中有一个没有被击中的断点。
我做错了什么?
<asp:TextBox ID="tbName" runat="server" ></asp:TextBox>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="tbName"
ServiceMethod="GetList" ServicePath="wsWebServices.asmx"
MinimumPrefixLength="2">
</cc1:AutoCompleteExtender>
[WebMethod]
[ScriptMethod]
public string[] GetList(string prefix, int count)
{
return new string[] { "abc", "def", "hij", "abc", "def", "hij", "abc", "def", "hij", "abc", "def", "hij" };
}
答案 0 :(得分:2)
尝试将WebMethod和ScriptMethod中的引用更改为完全限定名称:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
在你的参数更改前缀为prefixText(返回类型和参数名称和类型必须完全匹配,包括大小写)
public string[] GetCompletionList(string prefixText, int count)
确保您的脚本管理器在您的页面上。
答案 1 :(得分:0)
define your web method as static like
public static string[] GetList(string prefix, int count)
答案 2 :(得分:0)
试试这个
ASPX
<asp:TextBox ID="tbName" runat="server" autocomplete="off" ></asp:TextBox>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="tbName"
ServiceMethod="GetList"
ServicePath="wsWebServices.asmx"
MinimumPrefixLength="2">
</cc1:AutoCompleteExtender>
在服务中 检查你的asmx路径 班级以上 [System.Web.Script.Services.ScriptService] public class wsWebServices:System.Web.Services.WebService {
[WebMethod]
public string[] GetList(string prefix, int count)
{
return new string[] { "abc", "def", "hij", "abc", "def", "hij", "abc", "def", "hij", "abc", "def", "hij" };
}
}
答案 3 :(得分:0)
我尝试从javascript函数调用webservice,这很有用。所以问题是以某种方式自动完成没有获得web服务的“结果”。
此页面上的所有其他答案都不适用或不起作用。
我认为ajax文档中缺少某些内容。如果我得到这个工作,我会在这里写下来。