HTML.Dropdownlist自动完成

时间:2010-11-05 22:15:59

标签: html asp.net-mvc html-helper

是否有我可以设置的html属性,以便我的html.dropdownlist表现得像组合框,这样用户可以键入并拥有自动完成或建议/建议附加? 我真的很喜欢不必使用telerik并且不需要我的代码。

不确定它的相关性,但我使用的是C#,asp.net mvc 2

2 个答案:

答案 0 :(得分:0)

我建议在常规文本框中使用javascript和可能的ajax,具体取决于您想要自动完成的内容。

使用JQuery会是这样的:

$('#textboxID').bind('keydown', function(e)
{
     var data = $('#textboxID').Val;
     $.ajax({
          url: 'some/webservice', //If you're using MVC then your webservice url will be an action method url that returns the results you want.
          data: { userinput: data },
          type: "post",
          success: function (response)
          {
               //display context menu with suggestions from response
          }
      });
});

如果您不希望为每个keydown事件发送一个AJAX请求,那么您可以使第一个keydown甚至启动一个js计时器,如果文本框值已更改,则每隔几秒检查一次,如果是,则进行新的ajax调用更新建议下拉菜单。显然,当文本框失去焦点时,请停止间隔计时器onblur。

答案 1 :(得分:0)

我建议使用jQuery autocomplete plugin

以下是我为PHP项目编写的代码示例,该项目使用Web服务检索数据以填充项列表。该插件还具有缓存和选项,可根据需要延迟调用,因此您不会过度消耗带宽。如您所见,引用库后,页面上不需要很多代码。

$('#title').autocomplete('ws/autocomplete.php',
{
  width: 400,
  selectFirst: false,
  matchContains: true,
  cacheLength: 1,
  extraParams: {t: "jobtitle"}
});

唯一的限制是您的Web服务需要返回JSON数据。