Kendo ui 肯杜伊网格重新排序

Kendo ui 肯杜伊网格重新排序,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,当用户更改网格中列的顺序时,我能够捕获新的列顺序,将其序列化并存储。 我就是不知道当页面重新加载时,如何将这些数据带回并重新应用到网格中 我使用“columReorder”事件发布服务调用来存储结果 我尝试了几种方法来引入专栏。 我尝试绑定到kindo网格的“columns”属性,但是在网格呈现之前,外部web服务调用没有及时返回。 我这样做是否正确,或者是否有更好的方法来获取列的序列化列表(我已保存)并在网格加载时设置顺序 谢谢 创建网格后,无法设置列。必须将列顺序传递给初始值设定项。创建网格

当用户更改网格中列的顺序时,我能够捕获新的列顺序,将其序列化并存储。 我就是不知道当页面重新加载时,如何将这些数据带回并重新应用到网格中

我使用“columReorder”事件发布服务调用来存储结果

我尝试了几种方法来引入专栏。 我尝试绑定到kindo网格的“columns”属性,但是在网格呈现之前,外部web服务调用没有及时返回。 我这样做是否正确,或者是否有更好的方法来获取列的序列化列表(我已保存)并在网格加载时设置顺序


谢谢

创建网格后,无法设置列。必须将列顺序传递给初始值设定项。创建网格后,它不会仅通过传入columns对象来更新顺序。所以,你需要发布一些代码,但这里有一个我的解决方案

在我的模型中,我将列设置传递到视图中,然后使用(colSet)对象打开和关闭列,如下所示

columns.Bound(c => c.LINE_OF_BUSINESS).Hidden(colSet != null ? ("false" == colSet["LINE_OF_BUSINESS"]) : false)

您也可以通过这种方式更改列的顺序-在视图中需要两个步骤。在GridColumnFactory中创建列绑定的一个步骤,然后在初始化网格时传递该绑定(而不是在Columns()方法参数列表中创建它)

当然可以,Jasmine,下面是对我有效的方法。我在页面上有多个网格,有一个用户id硬编码,需要

被取代,但这应该给其他人一个开始

var gridResult=$(“#1f2e9791-21e1-4d9a-8b9a-4b08a99fee11.grid”).kendoGrid({
数据源:{
键入:“json”,
运输:{
阅读:
{
//调用api获取数据
网址:'http://localhost:61242/api/meds'
}
},
模式:{
型号:{
//定义架构字段
字段:{
日期:{type:“Date”},
药物:{type:“string”},
剂量:{type:“string”}
}
}
},
},
可重定额:对,
可排序:是的,
可分页:false,
可调整大小:正确,
//动态获取外部容器的高度(使用gridster)
高度:$(“#1f2e9791-21e1-4d9a-8b9a-4B08A99fee1”)。高度()-30,
可滚动:对,
列重新排序:函数(e){
var=这个;
setTimeout(函数(){
//重新排序时保存列
SaveColsGrid1(kendo.stringify(that.columns));
}, 5);
},
数据绑定:函数(e){
//检索列
GetColumns('1f2e9791-21e1-4d9a-8b9a-4B08A9911');
}
});

save方法,该方法发布MVC my MVC控制器

函数SaveColsGrid1(数据){
$.ajax({
url:'@url.Action(“SaveColsGrid1”),
键入:“post”,
contentType:'应用程序/json',
数据:数据
});
}

检索列并重新排序

函数GetColumns(gridId){ var sessionId=$(“#inSession”).val(); $.ajax({ 网址:'http://localhost:61242/api/usercolumn/1|“+gridId, 键入:“GET”, contentType:'应用程序/json', 数据:gridId, async:false, 成功:功能(数据){ 如果(数据和数据长度>0){ var classname=“#”+gridId+”.grid” var realGrid=$(classname).data(“kendoGrid”); var visibleIndex=-1; 对于(变量i=0;i-1&&existingIndex!=i)//不同的索引 {//需要重新排序 //警报(“hi2”); reorderColumn(i,realGrid.columns[existingIndex]); } //2.设置可见性状态 var isHidden=(typeof column.hidden=='undefined')?false:column.hidden; 如果(isHidden){ realGrid.hideColumn(i); } 否则{ realGrid.showColumn(i); ++可见指数; } //3.设置宽度 var width=(typeof column.width=='undefined')?null:column.width; 如果(宽度!=null){ realGrid.columns[i].width=width;//此设置值,而rest重新绘制 realGrid.thead.prev().find('col:eq('+visibleIndex+')).width(width); realGrid.table.find('>colgroup列:eq('+visibleIndex+')).width(widt