我在这里使用自动完成控件:http://www.ramirezcobos.com/labs/autocomplete-for-jquery-js/comment-page-2/
我把它修改为:
var json_options;
json_options = {
script:'ReportSearch.aspx/GetUserList?json=true&limit=6&',
varname:'input',
json:true,
shownoresults:true,
maxresults:16,
callback: function (obj) { $('#json_info').html('you have selected: '+obj.id + ' ' + obj.value + ' (' + obj.info + ')'); }
};
$('#ctl00_contentModule_txtJQuerySearch').autoComplete(json_options);
我在C#Code behind(aspx.cs)
中有以下方法 [System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string[] GetUserList(string input)
{
List<string> lUsers = new List<string>();
Server.DAL.SQLServer2005.User user = new Server.DAL.SQLServer2005.User();
Server.Info.AuthUser aUser = (Server.Info.AuthUser)HttpContext.Current.Session["AuthUser"];
List<Server.Info.User.UserDetails> users = user.GetUserList(aUser, input, 16, true);
users.ForEach(delegate(ReportBeam.Server.Info.User.UserDetails u)
{
lUsers.Add("(" + u.UserName + ")" + u.LastName + ", " + u.FirstName);
});
return lUsers.ToArray();
}
我得到的错误是:
服务器错误。未知的网络方法 GetUserList。参数名称:methodName
如果我更改任何参数名称,我会收到错误,告诉我参数名称不匹配。现在一切都是应该的,这是轰炸。
任何帮助都会摇滚。
答案 0 :(得分:1)
如果您的代码在用户控件中(而不是在实际的aspx中),则可能会导致问题。我想它不应该,但我自己也有问题,不记得它们看起来如何,但最后我反驳说我的web方法放在asmx文件而不是aspx文件中,如果它们是从除了aspx之外的任何东西都可以获得,而且它已经很好了=)