jquery自动完成插件在母版页中不起作用

jquery自动完成插件在母版页中不起作用,jquery,asp.net,autocomplete,master-pages,Jquery,Asp.net,Autocomplete,Master Pages,一、 我一直在开发一个autoparts网站,在那里我需要搜索框中的自动完成功能 我已经尝试过的事情: 我[我尝试过使用服务使用ajax extender,但没有成功] ii[我也尝试过jquery ui内置的自动完成插件没有运气] 但是经过一天的努力,我终于在简单的aspx页面上运行了它,但是当我在母版页面中使用这段代码时,它就不起作用了 在这方面,我需要你们: //code inside the masterpage head <script src="http://ajax.goog

一、 我一直在开发一个autoparts网站,在那里我需要搜索框中的自动完成功能

我已经尝试过的事情:

我[我尝试过使用服务使用ajax extender,但没有成功] ii[我也尝试过jquery ui内置的自动完成插件没有运气]

但是经过一天的努力,我终于在简单的aspx页面上运行了它,但是当我在母版页面中使用这段代码时,它就不起作用了

在这方面,我需要你们:

//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>
//注意:此文本框也在母版页中,而不在任何内容页中

<asp:TextBox ID="myTextBox" runat="server" Width="250" ></asp:TextBox>
//这是httphandler的代码。。。 //注意:我正在使用LuceneIndexes检索数据

公共类选择:IHttpHandler {


请帮助我,任何建议都将有助于thanx提前…

此问题是因为您不使用动态呈现控件id,并且从您将其放在母版页上的那一刻起,id就发生了更改

在javascript的这一行中,使用myTextBox.ClientID作为:


要对控件id进行动态呈现,并使jQuery找到它。

此问题是因为您不使用动态呈现的控件id,并且从您将其放置在母版页上的那一刻起,id就发生了更改

在javascript的这一行中,使用myTextBox.ClientID作为:

对控件id进行动态呈现,并使jQuery找到它

    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;
        }
    }
}
$("#<%=myTextBox.ClientID%>").autocomplete('select.ashx');