让人抓狂 - ASP.Net AJAX AutoComplete 不起作用

2024-02-19

希望有人能帮忙解决这个问题。我一直在网上和这个网站上寻找答案,但仍然无法让自动完成 AJAX 控件正常工作。我已经从尝试将其包含在现有网站中到将其剥离回非常基本的形式,但它仍然无法正常工作。我使用页面方法而不是本地网络服务更幸运,所以这是我的代码

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="droptest.aspx.cs" Inherits="droptest" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>  
    <form id="form1" runat="server">    
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" runat="server">
        </asp:ScriptManager>
        <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" 
            MinimumPrefixLength="1" ServiceMethod="getResults" 
            TargetControlID="TextBox1">
        </cc1:AutoCompleteExtender>
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Script.Services;
using System.Web.Services;

public partial class droptest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    [WebMethod]
    public string[] getResults(string prefixText, int count)
    {
        string[] test = new string[5] { "One", "Two", "Three", "Four", "Five" };
        return test;
    }
}

试图让事情尽可能简单,但我得到的只是带有页面源的自动完成下拉列表(从<! doctype...)逐个字母,或者在 IE7 中它只是在列表中一直显示“UNDEFINED”。

我目前正在使用 Visual Web Developer 2008,它在本地主机上运行。我想我已经用尽了我能找到的所有“尝试这个...”选项,从添加 [ScriptMethod] 到更改 Web.Config 中的内容。

这段代码有什么明显的错误吗?

唯一的另一件事是may起作用的是 Global.asax 我做了一个 Context.RewritePath 来重写 URL - 这对 AJAX 有任何影响吗?

谢谢你提供的所有帮助。


我认为您还需要将页面名称作为 servicePath 包含在内。

    <cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" 
            MinimumPrefixLength="1" ServiceMethod="getResults" ServicePath="droptest.aspx" 
            TargetControlID="TextBox1">
    </cc1:AutoCompleteExtender>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

让人抓狂 - ASP.Net AJAX AutoComplete 不起作用 的相关文章