2013-06-03 6 views
2

Я пытаюсь работать AutoCompleteExtender, но он не работает. Я использую ajaxToolkit и файл веб-сервиса. нет ошибки, оба из них. Я думаю, что сценарий может быть неправильным, пожалуйста, дайте мне предложение для исправления.asp.net ajaxtoolkit автозаполнение не работает

< ajaxToolkit:AutoCompleteExtender 
          runat="server" 
          BehaviorID="AutoCompleteEx" 
          ID="autoComplete1" 
          TargetControlID="TextBox" 
          ServicePath="AutoComplete.asmx" 
          ServiceMethod="GetCompletionList" 
          MinimumPrefixLength="2" 
          CompletionInterval="1000" 
          EnableCaching="true" 
          CompletionSetCount="20" 
          CompletionListCssClass="autocomplete_completionListElement" 
          CompletionListItemCssClass="autocomplete_listItem" 
          CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem" 
          DelimiterCharacters=";, :" 
          OnClientShowing="true" > 
            <Animations> 
           <OnShow> 
            <Sequence> 

             <OpacityAction Opacity="0" /> 
             <HideAction Visible="true" /> 


             <ScriptAction Script=" 
              // Cache the size and setup the initial size 
              var behavior = $find('AutoCompleteEx'); 
              if (!behavior._height) { 
               var target = behavior.get_completionList(); 
               behavior._height = target.offsetHeight - 2; 
               target.style.height = '0px'; 
              }" /> 


             <Parallel Duration=".4"> 
              <FadeIn /> 
              <Length PropertyKey="height" StartValue="0" EndValueScript="$find('AutoCompleteEx')._height" /> 
             </Parallel> 
            </Sequence> 
           </OnShow> 
           <OnHide> 

            <Parallel Duration=".4"> 
             <FadeOut /> 
             <Length PropertyKey="height" StartValueScript="$find('AutoCompleteEx')._height" EndValue="0" /> 
            </Parallel> 
           </OnHide> 
          </Animations> 
          </ajaxToolkit:AutoCompleteExtender> 

AutoComplete.asmx:

public string[] GetCompletionList(string prefixText, int count) 
    { 


     SqlConnection cn = new SqlConnection(ConfigurationManager.AppSettings["U"].ToString()); 
     DataSet ds = new DataSet(); 
     DataTable dt = new DataTable(); 

     SqlCommand cmd = new SqlCommand(); 
     cmd.Connection = cn; 
     cmd.CommandType = CommandType.Text; 

     cmd.CommandText = "select * from Stoc WITH (NOLOCK) where KeySentences like @myParameter"; 
     cmd.Parameters.AddWithValue("@myParameter", "%" + prefixText + "%"); 
     try 
     { 
      cn.Open(); 
      cmd.ExecuteNonQuery(); 
      SqlDataAdapter da = new SqlDataAdapter(cmd); 
      da.Fill(ds); 
     } 
     catch (Exception ex) 
     { 

     } 
     finally 
     { 
      cn.Close(); 
     } 
     dt = ds.Tables[0]; 

     //Then return List of string(txtItems) as result 
     List<string> txtItems = new List<string>(); 
     String dbValues; 

     foreach (DataRow row in dt.Rows) 
     { 
      //String From DataBase(dbValues) 
      dbValues = row["KeySentences"].ToString(); 
      dbValues = dbValues.ToLower(); 
      txtItems.Add(dbValues); 

     } 

     return txtItems.ToArray(); 

    } 

Спасибо за ваши ответы ..

+0

У вас нет ошибок? Вы уверены, что получаете какие-либо данные? Этот пустой блок «catch», вероятно, заставит вас пропустить любые ошибки, которые происходят. Установите контрольную точку и посмотрите, получаете ли вы ошибки в блоке «catch», а если нет, если вы получаете что-то обратно из вашего вызова базы данных. – jadarnel27

+0

Откройте инструменты разработчика Chrome ** ** и посмотрите, есть ли какие-либо ошибки? –

ответ

0

я испытываю с моей ошибкой ajaxtoolkit4.5 на этом свойства.

OnClientShowing="true".

Не знаете, что вы хотите сделать, но удалите эту работу для меня. (Я скопирую ваш код, удалив подключение к базе данных и работа)