我正在尝试使用自动完成功能,如果我在Web服务中调用没有参数的函数,它可以正常工作:
<WebMethod()> _
<Script.Services.ScriptMethod()> _
Public Function GetCompanyNames2() As String()
Dim db As New DataClassesDataContext
Dim company = From c In db.CT_Companies
Where c.CompanyName.Contains("Airport")
Select c.CompanyName
Return company.ToArray
End Function
如果我尝试调用一个带参数的函数,我需要这样做,我可以在文本框中输入用户输入的文本,它根本不会打到函数,我放了一个休息时间指出它并且它永远不会达到断点:
<WebMethod()> _
<Script.Services.ScriptMethod()> _
Public Function GetCompanyNames(ByVal prefixTest As String) As String()
Dim db As New DataClassesDataContext
Dim company = From c In db.CT_Companies
Where c.CompanyName.Contains(prefixTest)
Select c.CompanyName
Return company.ToArray
End Function
有人知道发生了什么吗?
以下是default.aspx的内容:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/AutoComplete.asmx" />
</Services>
</asp:ScriptManager>
<div>
<asp:TextBox ID="txtCompanyName" runat="server"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender runat="server" ID="autoComplete1" TargetControlID="txtCompanyName"
ServicePath="~/AutoComplete.asmx" ServiceMethod="GetCompanyNames" MinimumPrefixLength="1"
EnableCaching="true" />
</div>
答案 0 :(得分:0)
您是否尝试过重建Web服务项目并刷新Web项目中的Web引用(Web服务代理)?
答案 1 :(得分:0)
这可能是事实上很长时间才有用,但参数必须命名为 prefixText 而不是 prefixTest ,就像你在这里一样。