Asp.net 设置上下文键时是否不触发Ajax自动完成?
我试图传递一个额外的参数,这样当用户从下拉列表中选择一个状态时,带有autocomplete的文本框将只显示它=所选状态的结果。由于某种原因,添加此函数时,函数getcompletionlist没有启动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
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()