【问题标题】:AutoCompleteExtender not working自动完成扩展器不工作
【发布时间】:2010-06-25 08:34:24
【问题描述】:

以下是我正在使用的代码,但它不起作用。

<asp:TextBox ID="txtWarrantNumber" runat="server"></asp:TextBox>
<AjaxCtrl:AutoCompleteExtender ID="acWarrantNumber" runat="server" TargetControlID="txtWarrantNumber"
    ServiceMethod="GetWarrantNumber" ShowOnlyCurrentWordInCompletionListItem="true"
    CompletionInterval="100" EnableCaching="true" MinimumPrefixLength="1" CompletionSetCount="4">
</AjaxCtrl:AutoCompleteExtender>
        </ContentTemplate>
    </asp:UpdatePanel>
</PopupTemplate>

Public Shared Function GetWarrantNumber(ByVal prefixText As String, ByVal count As Integer) As String()
    Dim warrantNumbers() As String = {"ankit", "sachin", "ankrrr", "ankppp"}
    Return warrantNumbers
End Function

【问题讨论】:

    标签: asp.net autocompleteextender


    【解决方案1】:

    函数GetWarrantNumber 需要作为WebMethod 在WebService 中。并且您需要在 ServicePath 属性中提供 WebService.asmx 文件的位置。

    AutoCompleteExtender

    要在没有 web 服务的情况下执行此操作,您需要在页面中使用以下内容包装您的方法:

    <script runat="server">
        <System.Web.Services.WebMethod()> _
        <System.Web.Script.Services.ScriptMethod()> _
      Public Shared Function GetWarrantNumber()
      .....
      End Function
    </script>
    

    如果您这样做,则无需提供 ServicePath。

    【讨论】:

    • 您好,感谢您的回复。但我不想使用网络服务,并阅读自动完成功能可以在没有网络服务的情况下使用,也可以使用页面功能。因此我在页面上声明了一个静态函数。
    • 感谢您的回复。这在测试页面上对我有用,但我正在使用 AjaxControlToolkit.ModalPopupExtender 并且文本框无法正常工作。任何想法!
    • 自动完成列表将显示在模态弹出窗口的后面。请参阅此链接以获取简单的 Javascript 修复 codingresource.blogspot.com/2010/03/… 或在此处获取使用 CSS 的更完整解决方案 forums.asp.net/p/1369112/2863865.aspx#2863865
    • 两者都试过了..但都没有工作我设置了文本框 AutoCompleteType="Disabled" 但它仍然显示自动完成项目并且无法显示来自服务器的实际自动完成列表。我附加了该进程,并在输入文本框时检查它是否命中服务器,发现它没有命中服务器端方法:(
    • 你能发布你的完整代码吗?我已经回答了最初的问题 - 您的原始帖子没有提到模态弹出窗口。
    猜你喜欢
    • 2017-05-18
    • 2013-11-06
    • 2012-12-22
    • 1970-01-01
    • 2014-05-09
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    相关资源
    最近更新 更多