【发布时间】:2014-10-18 15:36:31
【问题描述】:
我有与文本框关联的 Ajax AutoExtender 控件。建议的数据是从数据库中选择的。但是我的自动完成代码甚至没有被触发。代码有什么问题?谢谢。
<asp:TextBox ID="txtSports" runat="server" CssClass="textbox" placeholder="Sport"></asp:TextBox>
<ajaxToolkit:AutoCompleteExtender ID="AutoCompleteExtender1" MinimumPrefixLength="1" ServicePath="~/AutoComplete.asmx" CompletionSetCount="20" CompletionInterval="0000" EnableCaching="true" UseContextKey="True" ServiceMethod="GetCompletionList" TargetControlID="txtSports" runat="server"></ajaxToolkit:AutoCompleteExtender>
AutoComplete.asmx 文件:
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Data.SqlClient
Imports AjaxControlToolkit
' 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 AutoComplete
Inherits System.Web.Services.WebService
<System.Web.Services.WebMethodAttribute, System.Web.Script.Services.ScriptMethodAttribute> _
Public Shared Function GetCompletionList(prefixText As String, count As Integer, contextKey As String) As String()
Dim listString As New List(Of String)()
Dim connStr As String = System.Configuration.ConfigurationManager.ConnectionStrings("SportovniPlanetaCS").ConnectionString.ToString()
Using conn As New SqlConnection(connStr)
Dim cmd As New SqlCommand((Convert.ToString("SELECT Sport, SportId FROM Sports WHERE Sport LIKE @Sport")))
cmd.Parameters.AddWithValue("@Sport", prefixText)
conn.Open()
Dim dr As SqlDataReader = cmd.ExecuteReader()
If dr.HasRows Then
While dr.Read()
listString.Add(AutoCompleteExtender.CreateAutoCompleteItem(dr("Sport").ToString(), dr("SportId").ToString()))
End While
End If
End Using
Dim str As String() = listString.ToArray()
Return str
End Function
End Class
【问题讨论】:
标签: asp.net vb.net autocomplete ajaxcontroltoolkit