【发布时间】:2016-02-06 13:43:15
【问题描述】:
包括
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="asp" %>
我的 ASPX 代码
<asp:TextBox ID="txtSearchKey" runat="server" Width="200" AutoPostBack="true" OnTextChanged="txtSearchKey_TextChanged" />
<asp:TextBoxWatermarkExtender ID="weSearchKey" runat="server" Enabled="True" TargetControlID="txtSearchKey" WatermarkText="Enter search criteria" WatermarkCssClass="watermark" />
<asp:AutoCompleteExtender ServiceMethod="SearchOnboardingMembers" MinimumPrefixLength="3" CompletionInterval="100" EnableCaching="false" CompletionSetCount="10" TargetControlID="txtSearchKey" ID="onboardingSearchExtender" runat="server" FirstRowSelected="false" OnClientItemSelected="GetSelectedId" CompletionListCssClass="completionList" CompletionListItemCssClass="listItem" CompletionListHighlightedItemCssClass="itemHighlighted" CompletionListElementID="divCompletionListElement" />
我的后端代码
[ScriptMethod()]
[WebMethod]
public static List<string> SearchOnboardingMembers(string prefixText, int count)
{
var filteredSearchText = String.Join(",", prefixText.Split(' ').Where(x => x.Length > 2));
//my code
return items;
}
此代码在页面上运行良好,我需要在不同页面上使用相同的功能。我只是将粘贴的 HTML 和后端代码复制到新的 ASPX 文件中。但是,奇怪的是它不适用于该页面。当我的意思是不工作时,WebMethod 没有在此页面上被调用。我们有什么办法可以在这里调试问题吗?当我在文本框中键入时,我在任何地方都看不到任何错误或警告,但它没有调用 WebMethod。感谢您的任何建议
【问题讨论】:
-
您是否尝试在浏览器中直接调用您的服务方法?像
MyPage.aspx/SearchOnboardingMembers这样的东西。或者将其放在单独的 .asmx 文件中并尝试打开MyService.asmx,检查其方法,在浏览器中调用它,然后检查浏览器调试网络选项卡以确保使用正确的路径调用它。
标签: c# asp.net ajax autocomplete ajaxcontroltoolkit