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

2019-09-18 04:24发布

到目前为止,我没有在本网站上的其他问题,发现了同样的问题。 下面是我遇到:

我有包含在那里我有一个ASP一个搜索区域一个UpdatePanel的ASP.NET Web窗体应用程序:我使用一个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 {}

希望这可以帮助。 就目前我已经隐藏包含从用户这一问题的选项卡。

Answer 1:

我觉得您遇到的经典问题ASP.NET UpdatePanel控件和jQuery。 问题如下:jQuery代码(在你的情况下,它是自动完成的,但它可以是任何东西),在页面加载工作正常,但它停止部分回发后的工作。 如果是这样的情况下,有一对夫妇,你需要了解使用jQuery与UpdatePanel控件的东西。

首先,在$(文件)中定义的所有事件绑定。就绪停止第一部分回发后的工作(我假设你按一下按钮导致部分回发)。 这仅仅是ASP.NET的工作方式。 那么如何解决这个问题? 嗯,有几种方法可以解决这个问题。 一个典型的建议是替代$(文件)。就绪与ASP.NET AJAX自己的页面加载事件。 这样可以解决一个问题,但它很可能会导致更多的问题,因为现在你将在每一个局部回传导致事件处理程序的重复执行单一事件绑定的事件。 你可以通过调用解除绑定的执行任何绑定在你选择解决一些问题。 对于简单的事件绑定,您可以继续使用$(文件)。就绪与功能(而不是点击,悬停等)。

我没有使用jQuery插件与UpdatePanel的,所以我不能肯定你需要做什么说什么,但一旦你明白发生了什么,它不应该是很难找到正确的方法。 要了解更多有关这个问题和可能的解决方案,请阅读大卫沃德的文章的$(document)。就绪()和页面加载()是不一样的! (该制品包括几个例子)。



Answer 2:

我建议你使用像一个工具Firebug的 ,使用它你可以找出其中的错误发生。 您可以监视Ajax请求,看它是否实际上已经停止生产的要求,如果他们让这一切通过你得到什么回应的方式,。 您还可以使用它在运行时调试JavaScript,而且往往给人,你可能没有注意到,否则错误讯息。 听起来像是只需要此刻的工具。



文章来源: ASP.NET jQuery AutoComplete - textbox not responding after first search