【问题标题】:How to make autocomplete textbox that passes a value to another aspx page on submit?如何制作自动完成文本框,在提交时将值传递给另一个 aspx 页面?
【发布时间】:2012-06-29 16:38:09
【问题描述】:

我有一个包含产品列表页面和产品详细信息页面的网站。

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

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

当访问者在下拉列表中的结果上按 Enter 键时,网站会将他带到由来自主页的查询字符串传递的 ID 中提交的产品详细信息填充的产品详细信息页面。

请帮助我,我搜索了很多,并且有非常相似的问题不适用于我的案例。

任何指向教程或类似我的问题的链接都是完美的。

非常感谢

【问题讨论】:

  • 您需要向我们展示一些代码,以找出为什么许多类似的答案对您不起作用。

标签: jquery asp.net ajax vb.net


【解决方案1】:

您需要自动完成扩展器。阅读它

  1. codeproject教程here
  2. 官方文档here
  3. MSDN 教程完全满足您的需求here

【讨论】:

    【解决方案2】:

    我会查看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; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多