自动完成扩展器不工作

本文关键字:工作 扩展器 | 更新日期: 2023-09-27 17:54:29

我有这个服务的自动完成扩展程序,为'h'为prefixText和3为count工作,并返回'hi'和'hello'在数组中:

[System.Web.Services.WebMethod]
    [System.Web.Script.Services.ScriptMethod]
    public string[] GetWebUploadAutoCompleteData(string prefixText, int count)
    {
        try
        {
            DAL.DAL dal = new DAL.DAL();
            string[] returnValues = dal.GetWebUploadAutoCompleteData(prefixText, count);
            return returnValues;
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }

服务类第一行:

...
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class BLL : System.Web.Services.WebService
{
...

,这是UI:

<asp:TextBox ID="txtTest" runat="server" Width="250px"></asp:TextBox>
                <cc1:AutoCompleteExtender ID="aceTest" runat="server" CompletionSetCount="3" DelimiterCharacters=";, :"
                    ServicePath="http://localhost:7051/UploadServices/BLL.asmx" MinimumPrefixLength="2" 
                    Enabled="true" ServiceMethod="GetWebUploadAutoCompleteData" TargetControlID="txtTest">
                </cc1:AutoCompleteExtender>

一切都是正确的,但它不工作,请帮助。

自动完成扩展器不工作

正如你所说,你的web服务和UI是独立的项目,所以你不能调用一个服务,它是在不同的领域,而不是托管你的客户端代码的页面。这是一个安全功能,防止恶意代码将您无害的javascript重定向到万维网上令人讨厌的东西。

<<p> 解决方案/strong>

要访问外部web服务,可以在UI项目中构建第三个web服务代理。第三个服务可以从服务器端访问外部web服务,您可以从客户端访问这个内部web服务。

如果有任何疑问请告诉我。

编辑

如果您在项目中创建了代理服务。再做一件事,在页面

上添加以下代码
<asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="AutoComplete.asmx" />
            </Services>
        </asp:ScriptManager>