私は答えにコメントできないので、私は自分自身を書きます。
ユーザー Mithrilhall が MVC ラッパーについて質問しましたが、一番の回答はルート ノードへの移動を妨げるだけです。
私はミスリルホールの両方に答えようとし、親のコンテキスト内でのみ子を移動できる例を提供します. 別の言い方をすれば、任意の親の子のみが親内で順序を変更できるようにします。
まず、MithrilHall の場合、これが MVC のイベントにアクセスする方法です。
@(Html.Kendo().TreeView()
.Name("ourTreeView")
.Events(e => e.Drop("treeViewDrop"))
ツリービューには他にもイベントがあります。自分の目で確かめてください。引数は JavaScript 関数の名前です。以下は、この MVC ラッパーの JavaScript 関数の例で、子が親の外に移動するのを防ぎますが、親内では移動できるようにします。
<script type="text/javascript">
function treeViewDrop(dropEvent) {
var treeView = $("#ourTreeView").data("kendoTreeView");
var destination = treeView.dataItem(dropEvent.destinationNode);
var source = treeView.dataItem(dropEvent.sourceNode);
if (!(destination && destination.parentID == source.parentID)) {
dropEvent.setValid(false);
}
}
</script>
データソースでモデル化されたparentIDフィールドがありました。これはさまざまな方法で実現できます。dataItem メソッドは kendo ツリービュー アイテムを返すため、モデル化されたすべてのフィールドが含まれています。
また、このソリューションでは、ドロップできない場所に移動しているときにウィジェットが X を表示するように変更されないことも理解してください。これは、別のソリューションの別の問題です。
これがお役に立てば幸いです、頑張ってください!