可以在Kendo Grid加载时有条件地将行显示为可编辑吗?

时间:2019-06-19 20:16:06

标签: jquery kendo-ui kendo-grid

See example

我想在数据源缺少值时有条件地将行显示为可编辑。

目的是为页面加载时的用户预先定义值

唯一可行的方法是为数据绑定添加grid.editRow(row),但这仅在存在单个项目且无法启用我的嵌入式按钮的情况下起作用

        function AddPreDefinedValues(){
            setTimeout(function () {
              var grid = $('#logGrid').data('kendoGrid');
              var data = worklogDataSource.data();
              var i = 0;

                console.log('**** check items: '+data.length);
                for(var item in data){
                    var newIndex = 0;
                     if(i != 0){
                         newIndex = i - 1;
                     }
                    if(data[item].Id === null){
                        console.log('************** '+newIndex);
                        var s = '#logGrid tr:has(td):eq('+newIndex+')';
                         grid.editRow($(s));
                    }
                    i++;
                }    

              }, 0);
        }

当数据源具有完整值时,将行显示为只读,但是当字段缺少值时,则在编辑模式下显示行

1 个答案:

答案 0 :(得分:0)

您的意思是您想一次打开许多行进行编辑?

我们已经建立了grid.editRow(row)不起作用,因为它仅编辑一行。

具有立即可编辑的字段的常见情况是带有复选框编辑器的布尔列,您可以搜索关于它的一些线程,例如this one

基本上,您需要做的是:

  1. 在模板中自行呈现编辑器
  2. 通过将列设置为不可编辑来防止剑道制作自己的编辑器
  3. 在您的自定义编辑器上绑定更改事件以更新模型

要做很多工作,尤其是渲染所有不同的编辑器。

另一种方法是在模板中添加一个标记,例如一个会引起用户注意的感叹号,并提供一个工具提示,说明他们需要填写此值。