在填充下拉列表之前等待文本框/键盘输入(Kendo + ASP.NET MVC)

时间:2017-04-04 17:08:40

标签: javascript jquery html asp.net-mvc kendo-ui

我有一个.net网络应用程序,当前有一个硬编码的网址,可以将不同的数据读入下拉列表。我想避免硬编码网址,而是从文本框/输入读取,有没有办法用javascript做到这一点?

我在考虑在用户输入数据后按下回车键后读取网址。

这就是我在视图中使用kendo填充下拉列表/组合框的方式

@(Html.Kendo().ComboBoxFor(x => x.LayerName)
.Name("Layers")
    .DataTextField("Text")
          .DataValueField("Value")
          .HtmlAttributes(new { style = "width:100%" })
          .Filter("contains")
          .DataSource(source =>
          {
              source.Read(read =>
              {
                  read.Action("GetServices", "ArcGISRest");//.Data("GetURL");
              })
              .ServerFiltering(true);
          }));

我最初尝试使用GetURL方法,该方法几乎使用jquery从输入框中获取url。但是,因为这是抓取url时的服务器端逻辑,所以默认为空(显然)。

我还考虑过使用一个按钮来做一个ajax帖子并填充那个方式,但这似乎过分了。必须有一个更简单的方法来处理这个?

用户将提交一个网址并处理从该网址获取的数据,因此不会将它们放入一个网址然后更改为另一个网址(至少现在不是)。

那么有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果您需要等待用户输入,那么您需要通过AJAX获得下拉选项。我对Kendo不够熟悉,无法为您提供准确的代码,但实质上,您应该只传递ComboBoxFor方法没有选项或空选项列表,但是这样就可以实现。

然后,在客户端,您可以处理输入的更改事件,该事件确定要命中的URL,并使用相关的Kendo JavaScript在那里构建您的选择列表。见:http://demos.telerik.com/kendo-ui/combobox/addnewitem