我正在MOSS 2007中创建一个包含自动完成扩展程序的Web部件。
我通过在web.config中添加所有的JavaScript来启用我的站点(例如here)
我的网络服务:
[System.Web.Script.Services.ScriptService]
public class AutoComplete : System.Web.Services.WebService
{
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public string[] GetCompletionList(string prefixText, int count)
{
List<string> results = new List<string>();
results.Add("Here");
results.Add("Here");
results.Add("Here");
results.Add("Here");
results.Add("Here");
results.Add("Here");
results.Add("Here");
return results.ToArray();
}
}
我可以从web浏览器访问web服务。但是,autocompleteextender不调用我的web服务。
我的Web服务URL:http://[myserver]/AutoComplete.asmx(我将其用于扩展程序的ServicePath)。
我还试着在页面上添加一个日历扩展器,日历在文本框下面呈现,并显示为内联html。奇怪。
任何想法都会有帮助。
谢谢
2条答案
按热度按时间nc1teljy1#
从您的Web服务URL来看,您似乎已将Web服务放入网站的根文件夹中。这将不起作用,因为此文件夹由SharePoint VirtualPathProvider处理,它将在内容数据库中查找文件。
您应该将您的Web服务放入一个JAR或12Hive\ISAPI或12Hive\LAYOUTS中,然后通过相应的
或
wvmv3b1j2#
我不明白为什么你需要一个Web服务,如果你使用AJAX?你可以把代码放在你的Web部件(或任何你构建的东西)里面,然后在更新面板里面做一个回发来获取值。更容易实现/安装/调试/支持。
当然,前面的答案是正确的,关于Web服务的位置。我只是可以补充说,通常的位置将是_vti_bin,而不是布局,你通常把你的自定义ASPX页面,但当然这两个技术上都可以工作。
请记住,您还应该使用代码或母版页标记向页面添加脚本管理器,否则它将无法工作,无论您是否将AJAX添加到web.config