问题: 从一个网格拖拽到另一个网格(两个方向)的结果导致行数据未与适当的标头正确对齐。
为简洁起见,我将发布网格的列定义。网格使用相同的模型,但并非所有列都在两个网格中都可见。
GRID1:
...
.Name("Group1")
.Columns(columns =>
{
columns.Bound(e => e.FlagId).Hidden(true);
columns.Bound(e => e.TransactionId).Hidden(true);
columns.Bound(e => e.EmployeeId).Hidden(true);
columns.Bound(e => e.EmployeeName);
columns.Bound(e => e.FlagDate).Hidden(true);
columns.Bound(e => e.FlagCreatedById).Hidden(true);
columns.Bound(e => e.FlagCreatedBy).Hidden(true);
columns.Bound(e => e.Reason).Hidden(true);
columns.Bound(e => e.Score).HtmlAttributes(new { @class = "currency" });
columns.Bound(e => e.NumberOfTransactions).HtmlAttributes(new { @class = "currency" });
columns.Bound(e => e.TotalAmount).HtmlAttributes(new { @class = "currency" });
})
...
网格2:
...
.Name("Group2")
.Columns(columns =>
{
columns.Bound(e => e.FlagId).Hidden(true);
columns.Bound(e => e.TransactionId).Hidden(true);
columns.Bound(e => e.EmployeeId).Hidden(true);
columns.Bound(e => e.EmployeeName);
columns.Bound(e => e.FlagDate);
columns.Bound(e => e.FlagCreatedById).Hidden(true);
columns.Bound(e => e.FlagCreatedBy);
columns.Bound(e => e.Reason);
columns.Bound(e => e.Score).HtmlAttributes(new { @class = "currency" });
columns.Bound(e => e.NumberOfTransactions).Hidden();
columns.Bound(e => e.TotalAmount).HtmlAttributes(new { @class = "currency" });
})
...
drop javascript:
group1.kendoDropTarget({
drop: function (e) {
console.log("e.draggable.currentTarget: %O", e.draggable.currentTarget);
e.dropTarget.append($(e.draggable.currentTarget).clone());
$(e.draggable.currentTarget).remove();
},
group: "gridGroup2"
});
答案 0 :(得分:1)
尝试复制并仅将数据添加到目标网格,而不是使用DOM - 这在这种情况下不是一个好习惯。
drop: function(e) {
var sourceGrid = $(e.draggable.element).data("kendoGrid"),
dataItem = sourceGrid.dataItem(e.draggable.currentTarget);
$(e.dropTarget).data("kendoGrid").dataSource.add(dataItem);
}