ASP.NET jQuery自动完成 - 文本框在第一次搜索后没有响应

问题描述:

到目前为止,我在本网站的其他问题中找不到相同的问题。这是我遇到的:ASP.NET jQuery自动完成 - 文本框在第一次搜索后没有响应

我有一个ASP.NET WebForms应用程序与UpdatePanel包含一个搜索区域,我有一个ASP:TextBox,我用于jQuery自动完成。

$(document).ready(function() { 
    $("#tabContainer_tabSearchBreaks_txtSearchName").autocomplete("AutoCompleteEmployee.ashx", { minChars: 3, maxItemsToShow: 10 }); 
}); 

这整个事情工作正常,但如果我点击一个ASP:巴顿和处理的搜索区域的一些代码,自动完成的javascript不再工作。

任何想法???

有一个解决方案来重置文本框来调用js代码。

[更新 - 更多代码] 这里的更新按钮所做的是从自动完成代码独立的搜索区域:

try { 
    int employeeID; 
    string[] namelst = txtSearchName.Text.Split(new string[] { 
     " " 
    }, StringSplitOptions.None); 
    employeeID = int.Parse(namelst[2].Substring(1, namelst[2].Length - 2)); 
    string name = namelst[0] + " " + namelst[1]; 
    var breaks = bh.ListBreaksForEmployeeByDate(employeeID, DateTime.Parse(txtFromDate.Text), txtToDate.Text.Length > 0 ? DateTime.Parse(txtToDate.Text).AddDays(1).AddSeconds(-1) : DateTime.Today.AddDays(1).AddSeconds(-1)); 

    if (breaks.Count() > 0) { 
     lblEmployeeTitle.Text = "Breaks for " + name; 
     gridSearchBreaks.DataSource = breaks; 
     gridSearchBreaks.DataBind(); 
    } 
} catch {} 

希望这有助于。目前,我已经隐藏了包含这个问题的用户标签。

+0

“处理搜索区域的一些代码”?请详细说明。 – Colin 2009-07-09 19:51:52

我想你遇到了ASP.NET UpdatePanel控件和jQuery的经典问题。问题是:jQuery代码(在你的情况下它是自动完成的,但它可以是任何东西)可以在页面加载时正常工作,但在部分回发之后它会停止工作。如果是这种情况,您需要了解有关在UpdatePanel控件中使用jQuery的几件事。

首先,在$(document).ready中定义的所有事件绑定在第一次部分回发之后停止工作(并且我假设您的按钮单击导致部分回发)。这只是ASP.NET的工作方式。那么你如何解决它?那么,有几种方法可以解决这个问题。一个典型的建议是用ASP.NET AJAX自己的pageLoad事件替换$(document).ready。这可能会解决一个问题,但它很可能会导致更多问题,因为现在您将在每个部分回发中绑定事件,从而导致在单个事件上重复执行事件处理程序。在执行任何绑定之前,您可以通过呼叫unbind来解决一些问题。对于简单的事件绑定,您可以继续使用$(document).ready和live函数(而不是点击,悬停等)。

我没有用UpdatePanel使用jQuery插件,所以我不能确定你需要做什么,但是一旦你明白发生了什么,就不应该很难找到正确的方法。要了解有关此问题和可能的解决方案的更多信息,请阅读Dave Ward的文章$(document).ready() and pageLoad() are not the same!(该文章包含几个示例)。

我建议你使用像Firebug这样的工具,利用它你可以确定发生错误的位置。你可以监控Ajax请求,看它是否实际上停止了请求,如果它们完成了,你会得到什么样的响应。您也可以在运行时使用它来调试javascript,并且它通常会给出您可能没有注意到的错误消息。听起来就像您目前需要的工具。

+0

我一定会尝试Firebug,看看我得到了什么。谢谢。 – kntcnrg 2009-07-10 17:51:19