【问题标题】:Wait for a textbox / keyboard input before populating a dropdown (Kendo + ASP.NET MVC)在填充下拉列表之前等待文本框/键盘输入(Kendo + ASP.NET MVC)
【发布时间】:2017-04-04 17:08:40
【问题描述】:

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

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

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

@(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 发布并以这种方式进行填充,但这似乎太过分了。必须有一个更简单的方法来处理这个?

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

有什么建议吗?

【问题讨论】:

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


    【解决方案1】:

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

    然后,在客户端,您可以处理决定点击哪个 URL 的输入的 change 事件,并使用相关的 Kendo JavaScript 在那里构建您的选择列表。见:http://demos.telerik.com/kendo-ui/combobox/addnewitem

    【讨论】:

    • 这实际上是我最终解决这个问题的方式,但看起来剑道有一种方法可以通过再次调用 read 来重新加载你的组合框,所以我决定最初使用空的选项列表并且然后,当用户提交 url 时,它会重新加载组合框并填充。感谢您的建议!
    猜你喜欢
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多