Google Chrome 中未显示 AjaxControlToolkit AutoCompleteExtender 列表

AjaxControlToolkit AutoCompleteExtender List Not Showing in Google Chrome

使用下面的代码,我可以成功地在 Firefox 和 IE 的文本框中显示自动完成列表,但在 google chrome 中没有显示,请帮助我。 正在成功检索数据库中的数据。我调试了一下,没有错误。

   <style  type="text/css">


.AutoExtender 
{ 
    font-size: 12px; 
    color: #000; 
    padding: 3px 5px; 
    border: 1px solid #999; 
    background: #fff; 
    width: auto; 
    float: left; 
    z-index: 9999999999; 
    position:absolute; 
    margin-left:0px; 
    list-style: none; 
    font-weight: bold; 
} 
        .listItem {
        color: #191919;

        } 
        .itemHighlighted {
        background-color: #ADD6FF;       
        }
</style>


<asp:TextBox ID="TextBox1" placeholder="SELECT * FROM TABLEA" class="enjoy-css" runat="server"  autocomplete="off"  TextMode="multiline"> 
             </asp:TextBox>

      <asp:ScriptManager ID="ScriptManager1" runat="server">
        </asp:ScriptManager>


    <AjaxControlToolkit:AutoCompleteExtender 
    runat="server" 
    ID="AutoCompleteExtender1" 
    BehaviorID="AutoCompleteExtender1"
    TargetControlID="TextBox1"
    ServiceMethod="AutoCompleteAjaxRequest"
    ServicePath="AutoComplete.asmx"
    MinimumPrefixLength="3" 
    CompletionInterval="100"
    EnableCaching="true"
    CompletionSetCount="100" 
    CompletionListCssClass="AutoExtender"
    CompletionListItemCssClass="listItem"
    FirstRowSelected="true"
    CompletionListHighlightedItemCssClass="itemHighlighted"
    DelimiterCharacters=";, :\n\r"
    showonlycurrentwordincompletionlistitem="true"
    >
</AjaxControlToolkit:AutoCompleteExtender>

自动完成网络服务

    public string[] AutoCompleteAjaxRequest(string prefixText, int count)
    {
        Match match;

        match = Regex.Match(prefixText, "(\w+)$");


        List<string> ajaxDataCollection = new List<string>();

        if (match.Success)
        {

            String Query = "SELECT TABLE_NAME FROM(select TABLE_NAME from INFORMATION_SCHEMA.COLUMNS  UNION select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS ) COLUMN_NAME WHERE TABLE_NAME like '%" +match.Value+"%';";
            DataTable dt = this.GetData(Query, CreateConnectionString(UserName, Password, DatabaseName, DataSource));
            if (dt.Rows.Count > 0)
            {
                int countt = dt.Rows.Count;

                for (int i = 0; i < countt; i++)
                {
                    ajaxDataCollection.Add(dt.Rows[i]["TABLE_NAME"].ToString());
                }
            }

                ajaxDataCollection.Add("SELECT");
                ajaxDataCollection.Add("WHERE");
                ajaxDataCollection.Add("UPDATE");
                ajaxDataCollection.Add("INSERT");
                ajaxDataCollection.Add("DELETE");
                ajaxDataCollection.Add("EXEC");
                ajaxDataCollection.Add("FROM");
                ajaxDataCollection.Add("VALUES");
                ajaxDataCollection.Add("HAVING");

            return  ajaxDataCollection.ToArray();
        }

这些是我在您的代码中观察到的几点:

将以下内容添加到 自动完成网络服务 并将您的 网络服务 方法设为 static

[System.Web.Script.Services.ScriptMethod]
[System.Web.Services.WebMethod]

public static string[] AutoCompleteAjaxRequest(string prefixText, int count)

我删除了 AjaxControlToolKit dll 文件并使用 Nuget 再次安装它并且它工作......我猜当 downloading/referencing 以前的 dll 文件时出了问题。