这是代码:
$("#AddFriendToGroup").tagit({
autocomplete: {
source: function (request, response) {
$.ajax({
type: 'POST',
url: 'ChatPageTest.aspx/tagFriendAutocomplete',
data: "{'ClientID':'" + $("#UserID").val() + "','ClientName': '" + request.term + "'}",
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
},
error: function (xhr) {
alert("responseText: " + xhr.responseText);
}
});
},
minLength: 2
}
});
服务器端:
public static string tagFriendAutocomplete(int ClientID,string ClientName)
{
string Result = "";
string query = "select fr.FRIEND_ID,c.[USER_NAME] from clients c inner join friends fr on c.CLIENT_ID=fr.FRIEND_ID and fr.CLIENT_ID=" + ClientID + " and c.[USER_NAME] like '%" + ClientName + "%' ";
DataTable dt = new SQLHelper(SQLHelper.ConnectionStrings.WebSiteConnectionString).getQueryResult(query);
if (dt.Rows.Count > 0)
{
for(int i=0;i<dt.Rows.Count;i++)
{
Result += dt.Rows[i]["FRIEND_ID"] + "," + dt.Rows[i]["USER_NAME"];
}
}
return Result;
}
我很困惑我不知道什么是正确的代码放在ajax成功函数可以任何人帮助我如何使我的情况下tagit的自动完成功能工作,以显示由ajax调用产生的clientName
答案 0 :(得分:2)
要获取有关在tagit中使用$ .ajax()的信息,请参阅How to get tagSource to work with $.ajax()
答案 1 :(得分:1)
这实际上有点棘手,我不记得在文档中看到了答案。
我所做的是以下内容:
$("#[id of tag to attach to]").tagit({
autocomplete: {
source: function( request, response ) {
if (acAjax && acAjax.readyState != 4)
acAjax.abort();
$("#loading").show();
acAjax = $.ajax({
url: [server url],
dataType: "json",
data: {
term: request.term
},
success: function( data ) {
returnedUsers = data;
response( $.map( data, function( item ) {
return {
label: item,
value: item
}
}));
},
error: function(xhr, status, error) {
returnedUsers = [];
},
complete: function(xhr, status, error) {
$("#loading").hide();
}
});
},
minLength: 2
},
allowSpaces: true,
beforeTagAdded: function(event, ui) {
if ($.inArray(ui.tagLabel, returnedUsers)==-1)
return false;
}
});
抱歉格式不正确。几个笔记:
成功'响应'功能 - 这是tagit理解的功能。我不完全确定它是如何工作的,但请注意,通过这种格式化,您可以让标签打印一件事(“标签”),并将值设置为其他值。
'returnedUsers'数组允许我阻止用户添加ajax未返回的标记。这有点难以理解,所以我希望这对你有所帮助。
其他选项列在文档中,所以我不会进入它们。希望这对你有所帮助。简单地指向文档是没有用的 - 我知道!