格式化和重定向用户(带有jQuery UI自动完成)

时间:2012-02-03 08:37:49

标签: jquery asp.net jquery-autocomplete

我是jQuery和Stack Overflow的新手。我正在做我的学校项目并已实现基本的自动完成搜索,以便在我的组的ASP.NET Web应用程序上工作。我接受了这个指南:http://www.magic-dev.com/autocomplete-textbox-aspnet-database.htm

我可以搜索名称(取自数据库),但我要做的是允许用户从结果中选择名称(点击名称),然后将其重定向到个人资料页面(例如 profile.aspx?id = 25 )。

我搜索了Stack Overflow并遇到了Redirecting users on select from autocomplete?。尝试在该问题上实施代码,但无济于事。

搜索框的当前结果是这样的(格式 [用户ID] - [名称] ):

25-Dennis Ferrell

我不想在结果中显示ID,只显示名称。 ID已添加到其中,因为我想使用 profile.aspx的ID?id = 25

** 编辑1 **

我读到{j}用户界面formatItemformatResult都弃用了25-Dennis Ferrell $('#<%= searchMenu.ClientID %>').autocomplete({ source: function (request, response) { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "PredictiveSearch.asmx/GetAllNames", data: "{'nameKeyword':'" + request.term + "'}", dataType: "json", async: true, success: function (data) { response(data.d); } }); }, select: function (event, data) { window.location = "profile.aspx?id=" + data.item.value.split("-")[0]; } }); 。所以现在,我获得了用户点击重定向的代码,但格式仍为25-

这是我更新的代码:

25-Dennis Ferrell

任何人都可以帮我解决格式问题吗?只想从25中移除success: function (data) { response($.map(data.d, function (item) { return item.split("-")[1]; })); } ,然后使用Dennis Ferrell通过ID重定向用户。

** 编辑2 **

我试过这样做:

25

结果为select:,但{{1}}无法传递到{{1}}函数(重定向用户所需)。

3 个答案:

答案 0 :(得分:2)

好的,所以我把它分开了。搜索框中的结果将显示Dennis Ferrell,而select:函数的ID值为25。我认为不是最好的答案,但是,这里是{的代码{1}}功能:

success:

success: function (data) { response($.map(data.d, function (item) { return { id: item.split("-")[0], value: item.split("-")[1], } })); } 函数的代码:

select:

答案 1 :(得分:1)

你应该在select函数中从ui.item.id获取id。

location.href = "profile.aspx?id=" + ui.item.id

希望有所帮助

答案 2 :(得分:1)

你可以使用

window.location = "page.aspx?userid="+ui.item.id;