1

我在 asp.net 和 c#.net 中使用带有文本框的 ajax 自动完成扩展器。我无法获得可供选择的列表,我有适当的 Web 服务方法调用..任何人都可以指导我完成自动操作。

<form id="form1" runat="server">
    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
    </asp:ToolkitScriptManager>
    <div>
    <asp:AutoCompleteExtender runat="server" ID="autoComplete1" TargetControlID="TextBox1"
    ServiceMethod="GetCompletionList"
    ServicePath="AutoComplete.asmx"
    MinimumPrefixLength="0" 
    CompletionInterval="50"
    EnableCaching="true"
    CompletionSetCount="1"    
    DelimiterCharacters=";, :"
    ShowOnlyCurrentWordInCompletionListItem="true">        
</asp:AutoCompleteExtender>
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    </div>
    </form>

并且网络服务方法包含以下代码

[WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    [ScriptService]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
    // [System.Web.Script.Services.ScriptService]
    public class AutoComplete : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod]
        public string[] GetCompletionList(string prefixText, int count)
        {
            List<string> responses = new List<string>();

            for (int i = 0; i < count; i++)

                responses.Add(prefixText + (char)(i + 65));
            return responses.ToArray();
        }
    }
4

1 回答 1

1

您的方法需要具有以下两个属性

[System.Web.Services.WebMethod()]
[System.Web.Script.Services.ScriptMethod()]
于 2010-04-23T07:03:05.737 回答