Asp.net 设置上下文键时是否不触发Ajax自动完成?

Asp.net 设置上下文键时是否不触发Ajax自动完成?,asp.net,ajax,Asp.net,Ajax,我试图传递一个额外的参数,这样当用户从下拉列表中选择一个状态时,带有autocomplete的文本框将只显示它=所选状态的结果。由于某种原因,添加此函数时,函数getcompletionlist没有启动 Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.ComponentModel Imports System.Data.SqlClient ' To allow this Web S

我试图传递一个额外的参数,这样当用户从下拉列表中选择一个状态时,带有autocomplete的文本框将只显示它=所选状态的结果。由于某种原因,添加此函数时,函数getcompletionlist没有启动

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Data.SqlClient

' To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the            following   line.
<System.Web.Script.Services.ScriptService()> _
 <System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
 <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
 <ToolboxItem(False)> _
Public Class AutoComplete1
Inherits System.Web.Services.WebService

<WebMethod()> _
Public Function GetCompletionList(prefixText As String, count As Integer, Contextkey As String) As String()
    Try
        Dim Con As SqlConnection
        Dim cmd As SqlCommand
        Con = New SqlConnection
        'Dim test As String
        'test = Contextkey
        Con.ConnectionString = ""
        Con.Open()

        cmd = New SqlCommand
        cmd.Connection = Con
        cmd.CommandText = "SELECT NPI, [Entity Type Code], [Provider Last Name (Legal Name)], [Provider First Name], [Provider Business Mailing Address City Name] FROM NPIData WHERE [Provider Last Name (Legal Name)] LIKE @Provider + '%'"
        cmd.Parameters.AddWithValue("@Provider", prefixText)
        Dim customers As List(Of String) = New List(Of String)
        Dim reader As SqlDataReader = cmd.ExecuteReader()

        While reader.Read
            customers.Add(reader("Provider Last Name (Legal Name)").ToString + ", " + reader("Provider First Name").ToString + ", " + reader("Provider Business Mailing Address City Name").ToString)

        End While
        Con.Close()

        Return customers.ToArray
    Catch ex As Exception

    End Try

End Function  

End Class
导入System.Web.Services
导入System.Web.Services.Protocols
导入System.ComponentModel
导入System.Data.SqlClient
'要允许使用ASP.NET AJAX从脚本调用此Web服务,请取消注释以下行。
_
_
_
_
公共类自动完成1
继承System.Web.Services.WebService
_
公共函数GetCompletionList(prefixText作为字符串,count作为整数,Contextkey作为字符串)作为字符串()
尝试
Dim Con作为SqlConnection
Dim cmd作为SqlCommand
Con=新的SqlConnection
'将测试设置为字符串
'测试=上下文键
Con.ConnectionString=“”
Con.Open()
cmd=newsqlcommand
cmd.Connection=Con
cmd.CommandText=“从NPIData中选择NPI,[实体类型代码],[提供商姓氏(法定名称)],[提供商名字],[提供商业务邮寄地址城市名称],其中[提供商姓氏(法定名称)],如@Provider+'%'”
cmd.Parameters.AddWithValue(“@Provider”,前缀文本)
将客户作为列表(字符串的)调整=新列表(字符串的)
作为SqlDataReader=cmd.ExecuteReader()的Dim读取器
边读边读
customers.Add(读卡器(“提供商姓氏(法定名称)”).ToString+,“+读卡器(“提供商名”).ToString+,“+读卡器(“提供商业务邮寄地址城市名称”).ToString)
结束时
Con.Close()
把顾客退回去
特例
结束尝试
端函数
末级
这是我的aspx自动完成代码:

    <asp:TextBox ID="TextBox1" runat="server" Height="27px" Width="375px"></asp:TextBox>
        <asp:AutoCompleteExtender ID="AutoCompleteExtender" runat="server" 
    DelimiterCharacters="" Enabled="True" ServicePath="AutoComplete.asmx"  
    ServiceMethod="GetCompletionList" TargetControlID="TextBox1" 
    MinimumPrefixLength="2" UseContextKey="true" ContextKey="State">
    </asp:AutoCompleteExtender>

Protected Sub StateDropDown_SelectedIndexChanged(sender As Object, e As EventArgs) Handles        StateDropDown.SelectedIndexChanged
    AutoCompleteExtender.ContextKey = StateDropDown.Text
End Sub

受保护的子状态下拉列表\u SelectedIndexChanged(发件人作为对象,e作为事件参数)处理状态下拉列表。SelectedIndexChanged
AutoCompleteXtender.ContextKey=StateDropDown.Text
端接头

我知道现在评论已经晚了,但请在webmethod中将ContextKey更改为ContextKey,希望它能正常工作

Public Function GetCompletionList(ByVal prefixText As String,ByVal count As Integer,ByVal          contextKey As String) As String()