【问题标题】:Set Kendo Grid POPUP editor values using Jquery使用 Jquery 设置 Kendo Grid POPUP 编辑器值
【发布时间】:2014-07-16 11:16:46
【问题描述】:

我正在使用带有 POPUP 编辑功能的 Kendo Grid。

在编辑弹出窗口时,我有一个如下所示的文本框。

@Html.TextBoxFor(model => model.FirstName, new { style = "width:175px" }) 

然后我使用 Jquery 设置这个文本框值

 $("#FirstName").val("my name");

当我提交弹出窗口以保存值时,它不会将这些值传递给控制器​​。但是,如果我在文本框上键入一个值,那么它就可以正常工作。

为什么它不能使用通过 Jquery 设置的值?

【问题讨论】:

    标签: jquery asp.net-mvc kendo-ui kendo-grid


    【解决方案1】:

    有一个更简单的解决方案:

    $("#FirstName").val("my name").trigger("change");
    

    【讨论】:

    • 虽然我没有尝试接受的答案,但效果很好。我更喜欢简单。我真的很想知道为什么 Telerik Grid Popup 会以这种方式工作。
    • 我猜这是因为网格弹出窗口使用了Kendo UI MVVM bindings。文档状态:“值绑定仅支持具有 value 属性的 DOM 元素和具有 value() 方法的小部件。当用户更改其值时,DOM 元素或小部件也必须触发更改事件。”
    【解决方案2】:

    由于某些旧原因,直接在 jquery 的编辑器弹出窗口/模板上设置的值不会更新模型。我也遇到了同样的问题,下面是我的解决方案。

    var uid = $(".k-edit-form-container").closest("[data-role=window]").data("uid"),
    
    model = $("#myGrid").data("kendoGrid").dataSource.getByUid(uid);
    
    model.set("FirstName", "my name");
    

    如果这不是您想要的,请告诉我!

    【讨论】:

      猜你喜欢
      • 2012-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-30
      相关资源
      最近更新 更多