【问题标题】:C# Kendo UI Asp.Net MVC trigger not workingC# Kendo UI Asp.Net MVC 触发器不起作用
【发布时间】:2016-02-01 09:20:09
【问题描述】:

我有一个 Asp.Net MVC 应用程序,我在其中添加了一些 Keno UI (Telerik) 组件。其中之一是 Kendo 组合框,除了没有触发更改事件之外,它运行良好。

这是我在 Asp.Net 中用于组合框的代码:

 @(Html.Kendo().ComboBox()
          .Name("EingangDrop")
          .Placeholder("Eingang durch...")
          .DataTextField("WSText")
          .DataValueField("ID")
          .HtmlAttributes(new { ng_model="Modell.EingangDurch" })
          .Filter("contains")
          .AutoBind(false)
          .MinLength(3)
          .DataSource(source =>
          {
              source.Read(read =>
              {
                  read.Action("GetVersand", "UserApi");
              })
              .ServerFiltering(false);
          })
    )

这工作正常,数据源设置得很好。 但是现在我在使用 jquery 函数时遇到了这个问题。 我想通过不起作用的 jQuery 更改选择。

这是我的 jQuery 代码:

// fire change event (this is not working)
$("#EingangDrop").data("kendoComboBox").select(1);
$('#EingangDrop').trigger("change");

我正在触发 Api 中所说的更改事件,但这仍然没有显示。不进行选择。

我认为问题与DataSource有关!当我在 jQuery 函数调用之前单击组合框,然后我在之后调用该函数时,就会进行选择。但这仅在我之前单击 ComboBox 时才有效。我相信如果我不单击它,它不会加载数据源,然后由于此时没有加载数据源,因此无法进行选择。

【问题讨论】:

  • 将 autoBind 更改为 true。如果它设置为 false 数据会在您点击后加载 - 而不是之前。
  • 无论如何,在您的代码示例中,我看不到 change 事件绑定到 ComboBox。

标签: c# jquery asp.net kendo-ui telerik


【解决方案1】:

为了在您的 ComboBox 上进行选择等,您必须设置

AutoBind(true)

当绑定多个小部件时,将 autoBind 设置为 false 很有用 相同的数据源。禁用自动绑定可确保 共享数据源不会向远程发出多个请求 服务。

应该是这样的:

@(Html.Kendo().ComboBox()
      .Name("EingangDrop")
      .Placeholder("Eingang durch...")
      .DataTextField("WSText")
      .DataValueField("ID")
      .HtmlAttributes(new { ng_model="Modell.EingangDurch" })
      .Filter("contains")
      .AutoBind(true)
      .MinLength(3)
      .DataSource(source =>
      {
          source.Read(read =>
          {
              read.Action("GetVersand", "UserApi");
          })
          .ServerFiltering(false);
      })
)

【讨论】:

    【解决方案2】:

    您没有为组合框绑定change 事件。

    试试这样的:

        @(Html.Kendo().ComboBox()
                  .Name("EingangDrop")
                  .Placeholder("Eingang durch...")
                  .DataTextField("WSText")
                  .DataValueField("ID")
                  .HtmlAttributes(new { ng_model="Modell.EingangDurch" })
                  .Filter("contains")
                  .AutoBind(false)
                  .MinLength(3)
                  .DataSource(source =>
                  {
                      source.Read(read =>
                      {
                          read.Action("GetVersand", "UserApi");
                      })
                      .ServerFiltering(false);
                  })
                 .Events(e =>
                 {
                    e.Change("onChange");
                 })
            )
    

    还有一个javascript 函数,它将在changed 事件上调用,例如:

    function onChange() {
            kendoConsole.log("event: change");
        }
    

    您可以在他们的page 上查看更多活动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多