【问题标题】:Autocomplete method not called using AutoExtender未使用 AutoExtender 调用自动完成方法
【发布时间】: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


    【解决方案1】:

    我认为您不需要为此使用单独的WebService。您可以创建一个 Web 方法并使其工作。

    您可以在此处查看示例...

    AutoComplete Demonstration

    【讨论】:

    • 我试过了,但也没有调用该方法。问题可能是,当我在 .aspx 页面的设计视图中单击自动生成自动完成方法时,它返回错误,找不到后面的代码。
    • 如果没有找到页面..那么你一定是重定向到错误的页面......!!!在您的方法上设置断点并尝试...您可以在 fiddler 或 firebug 中检查您的响应...
    • 当我在那个方法上设置断点时,它并没有停在那个地方。所以没有调用方法。
    【解决方案2】:

    在 AjaxToolKit 中添加

    OnClientItemSelected="ClientItemSelected"


    添加 javascript


    function ClientItemSelected(source, e) {

    source.get_element().value = (document.all) ? e._item.innerText : e._item.textContent;

    var str = $('#').val();

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多