【问题标题】:kendoDropDownList in edit mode to retain the value and validatekendoDropDownList 在编辑模式下保留值并验证
【发布时间】:2018-07-29 14:39:50
【问题描述】:

我在 kendogrid 中使用 kendoDropDownList。 现在,当我通过调用

编辑该行时
grid.editRow(tr);

函数,为编辑打开行。

它在编辑模式下显示 kendoDropDownList 但无法保留原始值。

我尝试使用数据绑定事件来选择原始值

let input = $('<input name= "' + options.field + '" required = "required"/>');
    input.attr('id', options.field);
    input.attr('data-text-field', 'Name');
    input.attr('data-value-field', 'Name');
    input.attr('data-bind', 'value:' + options.field);
    input.width(container.width());
    input.appendTo(container);
    input.kendoDropDownList({
      autoBind: false,
      dataTextField: 'Name',
      dataValueField: 'Name',
      optionLabel: 'Select',
      dataBound: (e) => {
        $('#' + options.field).data('kendoDropDownList').value(options.model.dropDownValue) ;
      },
      dataSource: {
        data: this.list,
        schema: {
          data: 'value'
        }
      }
    });

如果我不这样做,只需调用 validate

$('#grid').kendoValidator().data('kendoValidator').validate();

它显示了 kendoDropDownList 的验证消息。 因为当我在编辑模式下打开时,我正在设置下拉列表的值。那么为什么它显示验证消息,即使它的值是在数据绑定事件中设置的。

我在这里做错了吗?

【问题讨论】:

    标签: javascript kendo-ui kendo-grid kendo-dropdown


    【解决方案1】:

    我认为问题在于您根本没有在输入中设置任何值。至少有两种方法可以设置小部件的值,而无需执行您在dataBound 中所做的操作:

    1. 设置输入的value attribute

      $('<input name= "' + options.field + '" required = "required" value="' + options.model.dropDownValue + '" />');
      

      input.attr('value', options.model.dropDownValue);
      

      无论你最喜欢哪种方式......

    2. 设置小部件的value初始化参数:

      input.kendoDropDownList({
          value: options.model.dropDownValue
          ...
      

    我看到您已经设置了input.attr('data-bind', 'value:' + options.field);,但我不确定这是否应该设置小部件的初始值或只是更改大小写。但上述选项之一应该适合您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 2013-10-19
      • 2011-07-11
      相关资源
      最近更新 更多