Javascript 在剑道网格拖放中,一列值保持不变
我对剑道UI相当陌生,但我了解如何使用拖放功能渲染剑道网格,用户可以在其中拖放行 所以我需要保持序列列数据不变,而id和名称数据在拖放行时会发生更改Javascript 在剑道网格拖放中,一列值保持不变,javascript,jquery,html,kendo-ui,kendo-grid,Javascript,Jquery,Html,Kendo Ui,Kendo Grid,我对剑道UI相当陌生,但我了解如何使用拖放功能渲染剑道网格,用户可以在其中拖放行 所以我需要保持序列列数据不变,而id和名称数据在拖放行时会发生更改 Ex id=1 Name=David Sequnce=0 id=2 Name=Mark Sequnce=1 现在我将把第1行拖到第2行,同时序列列的数据保持不变,新数据如下所示 Ex id=2 Name=Mark Sequnce=0 id=1 Name=David Sequnce=1 就我而言,每一行都在改变。我需要实现这个
Ex id=1 Name=David Sequnce=0
id=2 Name=Mark Sequnce=1
现在我将把第1行拖到第2行,同时序列列的数据保持不变,新数据如下所示
Ex id=2 Name=Mark Sequnce=0
id=1 Name=David Sequnce=1
就我而言,每一行都在改变。我需要实现这个解决方案
有人能帮我一下吗
干杯
钦塔卡试试这个
脚本
<script type="text/javascript">
$(document).ready(function () {
var data = [
{ id: 1, text: "David ", Sequnce: 0 },
{ id: 2, text: "Mark ", Sequnce: 1 }
]
var dataSource = new kendo.data.DataSource({
data: data,
schema: {
model: {
id: "id",
fields: {
id: { type: "number" },
text: { type: "string" },
Sequnce: { type: "number" }
}
}
}
});
var grid = $("#grid").kendoGrid({
dataSource: dataSource,
scrollable: false,
columns: ["id", "text", "Sequnce"]
}).data("kendoGrid");
grid.table.kendoDraggable({
filter: "tbody > tr",
group: "gridGroup",
hint: function (e) {
return $('<div class="k-grid k-widget"><table><tbody><tr>' + e.html() + '</tr></tbody></table></div>');
}
});
grid.table/*.find("tbody > tr")*/.kendoDropTarget({
group: "gridGroup",
drop: function (e) {
var target = dataSource.get($(e.draggable.currentTarget).data("id"));
dest = $(e.target);
if (dest.is("th")) {
return;
}
dest = dataSource.get(dest.parent().data("id"));
//not on same item
if (target.get("id") !== dest.get("id")) {
//reorder the items
var tmp = target.get("Sequnce");
target.set("Sequnce", dest.get("Sequnce"));
dest.set("Sequnce", tmp);
dataSource.sort({ field: "Sequnce", dir: "asc" });
}
}
});
});
</script>
$(文档).ready(函数(){
风险值数据=[
{id:1,文本:“David”,序号:0},
{id:2,文本:“标记”,序号:1}
]
var dataSource=new kendo.data.dataSource({
数据:数据,
模式:{
型号:{
id:“id”,
字段:{
id:{type:“number”},
文本:{type:“string”},
序号:{type:“number”}
}
}
}
});
var grid=$(“#grid”).kendoGrid({
数据源:数据源,
可滚动:false,
列:[“id”、“文本”、“序号”]
}).数据(“kendoGrid”);
grid.table.kendoDraggable({
过滤器:“tbody>tr”,
组:“网格组”,
提示:函数(e){
返回$(''+e.html()+'');
}
});
grid.table/*.find(“tbody>tr”)*/.kendoDropTarget({
组:“网格组”,
删除:功能(e){
var target=dataSource.get($(e.draggable.currentTarget).data(“id”);
目的地=$(即目标);
如果(目的地为(“第”)天){
返回;
}
dest=dataSource.get(dest.parent().data(“id”);
//不在同一项目上
if(target.get(“id”)!==dest.get(“id”)){
//重新排序项目
var tmp=目标.get(“Sequnce”);
目标设定(“目标设定”),目标设定(“目标设定”);
目的地设置(“顺序”,tmp);
排序({field:“sequence”,dir:“asc”});
}
}
});
});
查看
<div id="grid">
</div>
演示:这有帮助吗。。。谢谢马丁的热情回应,干杯;-)伟大的Jaimin非常感谢您的解决方案对我有效;-)