【发布时间】:2010-10-07 04:31:13
【问题描述】:
我正在使用 jQuery AutoComplete,并且我有一个自动完成搜索框来搜索用户。
Default.aspx
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#<%= txtUser.ClientID %>").autocomplete('UsersAutoComplete.ashx');
});
</script>
<asp:TextBox ID="txtUser" runat="server" />
UsersAutoComplete.ashx
public class UsersAutoComplete : IHttpHandler
{
public void ProcessRequest (HttpContext context)
{
List<User> users = DataContext.Users
.Where(u => u.Username.StartsWith(context.Request.QueryString["q"]))
.Take(Int32.Parse(context.Request.QueryString["limit"]))
.OrderBy(u => u.Username)
.ToList();
foreach (User user in users)
{
context.Response.Write(user.Username + Environment.NewLine);
}
}
public bool IsReusable
{
get { return false; }
}
}
如您所见,它只返回用户名。我还想返回用户的 UserID。
结果仍将仅显示用户名列表,但当有人选择用户时,我想将该用户的用户 ID 存储在一个隐藏值中,以便我可以用它做任何我需要做的事情。我将对选定的用户运行查询,我宁愿通过 UserID 而不是通过用户名来查找用户。
有没有办法做到这一点?
【问题讨论】: