2015-09-23 3 views
0

Используя приведенный ниже код, я успешно могу показать автоматический полный список в текстовом поле в Firefox и IE, но он не отображается в Google Chrome, пожалуйста, помогите мне. данные из базы данных извлекаются успешно. я отлаживал его и ошибок не было.AjaxControlToolkit AutoCompleteExtender List Не отображается в 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(); 
     } 

ответ

0

Я удалил файл dll AjaxControlToolKit и установил его снова с помощью Nuget, и он сработал ... Я думаю, что что-то пошло не так, когда вы загружаете/ссылаетесь на предыдущий файл dll.

0

это те несколько моментов, которые я наблюдал в вашем коде:

Добавить следующие к веб-службы автозаполнения и сделать свой веб-службы метод, static

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

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

Я уже делаю это .. я не опубликовал код всей веб-службы и только что опубликовал метод службы, который использует AutoCompleteExtender. –

+0

Я попробую сделать метод статическим –

+0

Да для метода службы добавьте эти также '[System.Web.Script.Services.ScriptMethod] [System.Web.Services.WebMethod]' – Webruster