这几天困扰着我。我正在尝试在Sharepoint 2010的Visual Web Part项目中使用AutoCompleteExtender但是当我输入字符时没有任何反应。起初我认为这是一个Ajax问题所以我使用了TextBoxWatermarkExtender并且它可以工作,所以它不能是ajax的东西。
我按照这个家伙指南VERBATIM:http://ranaictiu-technicalblog.blogspot.com/2010/08/ajax-control-toolkit-with-sharepoint.html
这是我的ascx:
<%@ Register Assembly="AjaxControlToolkit, Version=3.0.30930.28736, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e"
Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<cc1:TextBoxWatermarkExtender ID="TextBoxWatermarkExtender1" runat="server"
TargetControlID="TextBox1"
WatermarkText="I'm awesome">
</cc1:TextBoxWatermarkExtender>
<cc1:AutoCompleteExtender ID="AutoCompleteExtender1" runat="server"
TargetControlID="TextBox1" ServiceMethod="GetCompletionList">
</cc1:AutoCompleteExtender>
这是我的代码隐藏:
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
namespace TestingAjax2.TestingAjax2
{
public partial class TestingAjax2UserControl : UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetCompletionList(string prefixText, int count)
{
string[] n = { "banana", "orange", "apple", "tunafish" };
return n;
}
}
}
任何帮助将不胜感激。我和另外一个人一起工作,我们都对它为什么不起作用感到困惑。
答案 0 :(得分:1)
您不能直接在用户控件中托管Scriptservice方法,只能在页面中使用。