2012-12-07 78 views
1

我一直在尋找一個autoparts網站,我在搜索框中需要自動完成功能。jquery自動完成插件在masterpage中不起作用

事情我已經嘗試:

我)我已經嘗試使用服務沒有運氣與阿賈克斯延長工作] II)[我也曾嘗試jQuery UI的內置自動完成插件沒有運氣]

但經過一天的全面鬥爭,我終於把它工作在簡單的aspx頁面上,但是當我使用這個代碼進入masterpage時,它的工作效率很高。

這一部分

我需要你的傢伙:)

//code inside the masterpage head 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script> 
<script src="scripts/jquery.autocomplete.min.js" type="text/javascript"></script> 
<link href="css/jquery.autocomplete.css" rel="stylesheet" type="text/css" /> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $("#ctl00_myTextBox").autocomplete('select.ashx'); 
    }); 
</script> 

//注意:這個文本框也是在母版沒有任何contentpage

<asp:TextBox ID="myTextBox" runat="server" Width="250" ></asp:TextBox> 

//這是HttpHandler的代碼。 .. //注:我使用LuceneIndexes以檢索數據

公共類選擇:IHttpHandler的 {

public void ProcessRequest(HttpContext context) 
    { 
     context.Response.ContentType = "application/javascript"; 
     if (!String.IsNullOrEmpty(context.Request.QueryString["q"])) 
     { 
      foreach (string s in GetAutoCompleteValues(context.Request.QueryString["q"])) 
      { 
       context.Response.Write(new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(s)+Environment.NewLine); 
      } 
     } 

    } 
    public static string[] GetAutoCompleteValues(string prefixText) 
    { 
      DataTable dt = GetSearchList.GetResult(prefixText); 
      List<string> RowNames = new List<string>(); 
      foreach (DataRow drow in dt.Rows) 
      { 
       RowNames.Add(drow[1].ToString() + " " + drow[2].ToString() + " " + drow[3].ToString() + " " + drow[4].ToString() + " " + drow[5].ToString() + " " + drow[6]); 
      } 
      return RowNames.ToArray(); 
    } 
    public bool IsReusable 
    { 
     get 
     { 
      return false; 
     } 
    } 
} 

請幫我出任何suggesstions將提前有益的感謝名單...

回答

1

這個問題是因爲你不使用動態呈現控件的ID,並從時刻,你把它放在母版頁上, id是變化。

在這一行上您的JavaScript,使用myTextBox.ClientID爲:

$("#<%=myTextBox.ClientID%>").autocomplete('select.ashx'); 

進行動態呈現控件的ID,並讓jQuery的發現它。

相關問題