![](/img/trans.png)
[英]How pass parameter from Jquery Select2 plugin to asp.net web service
[英]Pass ASP.NET Web Service Result to jQuery AutoSuggest Plugin
我有一个ASP.NET Web服务,该服务以JSON格式返回用户的朋友列表,以便它可以填充AutoSuggest插件数据源。 我正在使用ASP.NET 4.0和jQuery 1.4.4缩小版。 当我尝试调用autoSuggest方法时,以下代码似乎不起作用。 它将startText值应用于我的文本框,但不填充数据源。
$(document).ready(function () {
$("input[type=text]").autoSuggest("GetFriends.asmx/GetFriendsList", { minChars: 2, matchCase: false, startText: "Search Username" });
});
这是我的文本框控件:
<asp:TextBox ID="tbSearch" runat="server"></asp:TextBox>
这是我的Web服务的相关部分:
[WebMethod]
public string GetFriendsList()
{
DataTable dt = GetFriends();
List<Friend> friends = new List<Friend>();
string[] items = new string[dt.Rows.Count];
for (int i=0; i< dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
Friend friend = new Friend();
friend.value= dr["UserId"].ToString();
friend.name= dr["UserName"].ToString();
friends.Add(friend);
}
return JsonConvert.SerializeObject(friends, Formatting.Indented);
}
关于如何从Web服务填充AutoSuggest插件的数据源的任何建议? 这是开发人员页面的链接: http : //code.drewwilson.com/entry/autosuggest-jquery-plugin
经过更多研究后,我发现ASP .NET WebServices不会先返回XML才返回数据。 我决定使用通用处理程序,并使用该处理程序呈现JSON。 我使用现有代码对JSON进行编码,然后以如下方式呈现JSON:
string str = Newtonsoft.Json.JsonConvert.SerializeObject(data, Newtonsoft.Json.Formatting.Indented);
context.Response.ContentType = "application/json";
context.Response.Write(str);
我将上面的代码放入处理程序的ProcessRequest方法中,现在一切正常。 可能还有其他方法可以使JSON可用,但是这种方法暂时可行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.