javascript - 动态设置剑道网格列的可排序属性

标签 javascript jquery kendo-grid

我正在尝试通过变量设置剑道网格列的 sortable 属性,以控制该列何时可以具有排序功能以及何时不能。 但这是行不通的。 如果我直接将 sortable 属性设置为 true/false 它会相应地工作,但是当我使用变量来设置它时,它是不,无论变量值如何,该属性始终设置为“true”。

示例:

这按预期工作。

<div id="grid"></div>
<script>
$("#grid").kendoGrid({
  columns: [
    { sortable: false, field: "id" },
    { field: "name" }
  ],
  sortable: true,
  dataSource: [ { id: 1, name: "Jane Doe" }, { id: 2, name: "John Doe" } ]
});
</sript>

但事实并非如此,id字段总是将sortable属性获取为true

<div id="grid"></div>
<script>
// if first time it's true, then the sortable property is retaining true always, 
// regardless if on second call the variable is set to false. there is no effect
var setColumnSort = canBeFalseOrTrue;
$("#grid").kendoGrid({
  columns: [
    { sortable: setColumnSort, field: "id" },
    { field: "name" }
  ],
  sortable: true,
  dataSource: [ { id: 1, name: "Jane Doe" }, { id: 2, name: "John Doe" } ]
});
</script>

有没有办法动态禁用/启用剑道网格中的列排序?

最佳答案

网格初始化后,您需要通过网格属性动态设置它。

$('#grid').kendoGrid({
  sortable: true,
  columns: [
    {...}
  ]
});

var grid = $('#grid').getKendoGrid();

var options = grid.options;
options.columns[0].sortable = false;
grid.setOptions(options);

示例:Enable/disable sorting on column

关于javascript - 动态设置剑道网格列的可排序属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61611641/

相关文章:

jquery - 行展开的剑道网格详细信息

javascript - 如何在浏览器中调试angularjs的$rootScope对象

javascript - 行的替代背景颜色

javascript - JQueryUI 对话框 : delay open until success loading slideshow

jquery - 如何防止 iOS 和 Android 中的双击缩放

c# - 发布时未调用带有 Telerik Kendo Grid Read 方法 ([DataSourceRequest]) 的 ASP.NET Core 2.0

javascript - 测试浏览器是否支持 Web Audio Api 的简单方法?

javascript - 如何验证输入类型文件字段

javascript - 重新初始化可拖动后,jQueryUI 可排序重复元素

javascript - Kendo Grid 可编辑弹出窗口是否有某种 IsChanged 事件?