Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态设置剑道网格列的可排序属性_Javascript_Jquery_Kendo Grid - Fatal编程技术网

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

Javascript 动态设置剑道网格列的可排序属性,javascript,jquery,kendo-grid,Javascript,Jquery,Kendo Grid,我试图通过一个变量设置剑道网格列的sortable属性,以控制该列何时可以有排序功能以及何时不能。 但这是行不通的。 如果我直接将sortable属性设置为true/false,它会相应地工作,但当我使用变量来设置它时,它不会,无论变量值如何,该属性总是设置为“true” 例子: 这正如预期的那样有效 <div id="grid"></div> <script> $("#grid").kendoGrid({ columns: [ { sortabl

我试图通过一个变量设置剑道网格列的
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>

是否可以动态禁用/启用剑道网格中列的排序?

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

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

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

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

示例:

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

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

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

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

示例:

非常感谢。这很有效。在我的应用程序中,网格有80多列,开发人员可以根据需要在网格的任何位置添加新列。因此,我不是从
列字段名中获取
索引,而是从
列字段名中获取
索引(fieldName){var index=columns.findIndex(函数(v,i){return grid.columns[i].field==fieldName;});if(index>=0){columns[index].sortable=false;grid.setOptions(options);}}
非常感谢。这非常有效。在我的应用程序中,网格有80多个列,开发人员可以根据需要在网格中的任何位置添加新列。因此,我从
列字段名
获得
索引,而不是
固定列索引{var columnsToModifySort=[“field1”,“field2”];var grid=$(“#grid”).getKendoGrid();var options=grid.options;var columns=options.columns;0.each(columnsToModifySort,function(fieldName){var index=columns.findIndex(function(v,i){return grid.columns[i]。field==fieldName;});if(index>=0){columns[index].sortable=false;grid.setOptions(options);}}}