【问题标题】:How can i populate form from selected Kendo Grid row如何从选定的 Kendo Grid 行中填充表单
【发布时间】:2020-05-15 00:35:55
【问题描述】:

我有以下代码从选定的剑道网格中填充表单,网格是可选择的,我该如何修复以使其工作?

<script>
    $(function () {
        var grid = $("#AddressGrid").data("kendoGrid");
          fillForm(grid.dataItem);

      var fillForm = function(dataItem) {
        var columns = $("#AddressGrid").data("kendoGrid").options.columns;
        var form = $("form");

        for (var i = 0; i < columns.length; i++) {
          var field = columns[i].field;
          form.find("#" + field).val(dataItem[field]);
        }
      }
    });
</script>

这是我的表单的样子

<form>

    <label>ID:</label><br />
    <input type="text" id="AddressLine2" /><br />
    <label>Name:</label><br />
    <input type="text" id="City" /><br />
    <label>Last Name:</label><br />
    <input type="text" id="AddressID" />
</form>

【问题讨论】:

  • 如果只是少数字段,试试$("#AddressLine2").val(dataItem.AddressLine2)
  • @SteveGreene 是的,字段数量很少,我很难修改 js 你能告诉我更多关于如何在答案部分修改我的 js 中的 for 循环吗?这就是我在看的
  • @SteveGreene 是的,字段数量很少,我很难修改 js 你能告诉我更多关于如何在我的 js 中修改 for 循环的信息吗,如果你在答案中告诉我会很棒部分。这就是我正在寻找的

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


【解决方案1】:

我在您的代码中看到的最大问题是您没有命名选择事件并在您的网格中引用它。如果你想用反射风格的方式来做:

...
.Selectable(s => s.Mode(GridSelectionMode.Single))
.Events(events => events.Change("onSelect"))
...

您将定义 js:

<script type="text/javascript">

    function fillForm(dataItem) {
        var columns = $("#AddressGrid").data("kendoGrid").options.columns;
        var form = $("form");

        for (var i = 0; i < columns.length; i++) {
          var field = columns[i].field;
          form.find("#" + field).val(dataItem[field]);
        }
    }

    function onSelect() {
        var grid = $("#AddressGrid").data("kendoGrid");
        fillForm(grid.dataItem);
    }

</script>

【讨论】:

  • 谢谢史蒂夫,我在哪里可以放这个Events(events =&gt; events.Change("onSelect")),我的网格配置有点不同
  • 我试过了`$("#AddressGrid").on("change", onSelect);`
  • 您使用的是 MVC 网格(包装器)还是 javascript?两者都允许你设置监听的事件,所以不需要单独的on(xxxx,fn)。见herehere
  • 嗨史蒂夫,我正在使用 mvc 网格
  • 那么您应该使用.Events... 语法来订阅更改事件并调用将填充表单的onSelect 方法。更改事件和选择的示例在这里:demos.telerik.com/aspnet-mvc/grid/events
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-08
相关资源
最近更新 更多