如何制作自动完成文本框,在提交时将值传递给另一个aspx页面?

时间:2012-06-29 16:38:09

标签: jquery asp.net ajax vb.net

我的网站上有产品列表页面和产品详情页面。

在asp主页面中,我放置了一个文本框来搜索数据库中的产品。

我需要做的是:当访问者开始在文本框中书写时,文本框会从数据库中的产品名称中重新填充。

当访问者按下拉列表中的结果输入时,该站点将他带到产品详细信息页面,该页面由主页中查询字符串传递的ID提交的产品详细信息填充。

请帮助我,我搜索了很多,并且有非常类似的问题对我的情况不起作用。

任何指向教程或其他问题的链接都是完美的。

非常感谢

2 个答案:

答案 0 :(得分:1)

你需要automcompleteextender。在

中阅读相关内容
  1. codeproject tutorial here
  2. 官方文档here
  3. MSDN教程完全涵盖您的需求here

答案 1 :(得分:1)

我会查看jQuery autocomplete

您可以像这样使用它:

$('#<%= yourTextBox.ClientID %>').autocomplete({
    source: 'HandlerThatReturnsProductNames.ashx',
    select: function (event, ui) {
        // this is where you would jump to your product page
    }
});

然后你需要创建通用处理程序“HandlerThatReturnsProductNames.ashx”。在ProcessRequest方法中,它需要执行以下操作:

public void ProcessRequest(HttpContext context) {

    string term = context.Request.QueryString.Get("term");

    List<QuickProduct> listOfProducts = SomeMethodThatGetsMatchingProducts(term);
    var jsSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();
    string json = jsSerializer.Serialize(listOfProducts);

    context.Response.ContentType = "application/json";
    context.Response.Write(json);
    context.Response.End();
}

假设您的QuickProduct是这样的:

public class QuickProduct {
    public int value { get; set; }
    public string label { get; set; }
}