2017-06-21 22 views
0

我想讓autoCompleteExtender在文本框的焦點上填充所有可能性。到目前爲止,我沒有運氣。我曾嘗試在文本框標記中添加onfucus以調用js函數,該函數調用webmethod從數據表中填充,但沒有運氣。 webmethod正在被調用,但沒有顯示在頁面上。只有在文本框中輸入內容後,纔會有任何建議。 這裏是aspx頁面控制:自動填充AutoCompleteExtender與第一次點擊時的所有可能性

<div title="Model" runat="server" style="text-align:left; padding:20px"><strong>Model</strong> 
       <asp:TextBox ID="tbModel" runat="server" onfocus="ModelTBOnFocus()"></asp:TextBox> 
       <div id="ModelListPlacement" style="height:100px; overflow-y:scroll;" ></div> 
        <ajaxToolkit:AutoCompleteExtender ID="tbModel_AutoCompleteExtender" runat="server" DelimiterCharacters="" 
         Enabled="True" ServiceMethod="GetListofModels" MinimumPrefixLength="1" EnableCaching="true" 
         ServicePath="" TargetControlID="tbModel" CompletionInterval="50" CompletionSetCount="40" 
         CompletionListElementID="ModelListPlacement"></ajaxToolkit:AutoCompleteExtender> 
      </div> 

,這裏是代碼隱藏WEBMETHOD:

[System.Web.Script.Services.ScriptMethod()] 
     [System.Web.Services.WebMethod] 
     public static List<string> GetListofModels(string prefixText) 
     { 
      using (SqlConnection sqlconn = new SqlConnection(GetConnectionStringValue(""))) 
      { 
       sqlconn.Open(); 
       SqlCommand cmd = new SqlCommand("SELECT DISTINCT(Model) FROM Assets WHERE Model like '" + prefixText + "%' " + ModelQuery, sqlconn); 
       cmd.Parameters.AddWithValue("@Model", prefixText); 
       SqlDataAdapter da = new SqlDataAdapter(cmd); 
       DataTable dt = new DataTable(); 
       da.Fill(dt); 
       List<string> Models = new List<string>(); 
       TextInfo myTI = CultureInfo.CurrentCulture.TextInfo; 
       for (int i = 0; i < dt.Rows.Count; i++) 
       { 
        string model = myTI.ToTitleCase(dt.Rows[i]["Model"].ToString().ToLower()); 
        Models.Add(model); 
       } 
       return Models; 
      } 
     } 

這是工作的代碼。我只是試圖讓所有的可能性來顯示文本框的重點。任何幫助將非常感激。謝謝!

編輯: 這js也在工作,但我沒有得到任何建議,直到輸入內容。 這裏是JavaScript代碼來調用該函數:

<script type="text/javascript"> 
     function ModelTBOnFocus() { 
      PageMethods.GetListofModels(""); 
     } 
</script> 
+0

你不介意分享你的JavaScript代碼寫爲重點?爲什麼我問自動完成有自己的焦點事件,可能會幫助觸發您的代碼。自動完成焦點事件是'''autocompletefocus''' – Hopeless

+0

我將如何在此代碼中實現自動完成焦點。我試圖將其添加到autoCompleteExtender標記,但錯誤表示沒有公共屬性存在。 – kristech

+0

嗯,不知道,你有沒有機會嘗試一些在這個https://stackoverflow.com/questions/4132058/display-jquery-ui-auto-complete-list-on-focus-event 。嘗試添加這個'''$(this).data(「autocomplete」).search($(this).val());'''到你的javascript函數,並且通過'''this''從asp頁面。 – Hopeless

回答

0

發現我的答案是: 爲了解決這個問題,我不得不設置MinimumPrefixLength =「0」

相關問題