【问题标题】:auto complete extender without webservice没有网络服务的自动完成扩展器
【发布时间】:2013-04-16 03:50:50
【问题描述】:

我试图在我的表示层中实现自动完成扩展器,而不使用 Web 服务。我有这样的代码。

但是,我不知道我哪里出错了,但无法调用我代码后面的 web 方法。我也在我的脚本管理器中启用了 pagemethods。

而且我也没有更新面板。

<form id="form1" runat="server">
<ajax:ToolkitScriptManager ID="ScriptManager1" runat="server"/>
<div>
<asp:TextBox ID="txtdata" runat="server"></asp:TextBox>
<ajax:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server" TargetControlID="txtdata"
MinimumPrefixLength="1" EnableCaching="true" CompletionSetCount="1" CompletionInterval="1000" ServiceMethod="GetData" >
</ajax:AutoCompleteExtender>

我的代码是

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public List<string> GetData(string prefixText,int count)
{

//my code to get a list from DAL

return list;
}

提前致谢。

【问题讨论】:

  • 你说你没有使用网络服务。 GetData 因此是页面类上的一种方法吗?
  • 是的,它是我页面类中的一个方法。我正在使用这些命名空间,但仍然无法调用它 [System.Web.Script.Services.ScriptMethod()] [System.Web.Services.WebMethod ]
  • Yuriy 下面的回答将解决您的问题。 ScriptMethodAttribute 装饰器是无关的。

标签: asp.net c#-4.0


【解决方案1】:

GetData 方法必须是静态的。你可以在这里找到更多信息:Using jQuery to directly call ASP.NET AJAX page methods

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多