Skip to content

Commit b56a061

Browse files
committed
doc: 更新拖动到子节点时父节点自动展开功能
1 parent c029c48 commit b56a061

File tree

2 files changed

+18
-3
lines changed

2 files changed

+18
-3
lines changed

src/BootstrapBlazor.Server/Components/Samples/TreeViews.razor.cs

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,21 @@ private Task OnDragItemEndAsync(TreeViewDragContext<TreeFoo> context)
121121
source.ParentId = context.IsChildren ? target.Id : target.ParentId;
122122
}
123123
}
124-
DraggableItems = TreeFoo.CascadingTree(items);
124+
125+
var expandNodeIds = new List<string>();
126+
Action<TreeViewItem<TreeFoo>>? cb = null;
127+
if (context.IsChildren)
128+
{
129+
// 自动展开目标节点
130+
cb = item =>
131+
{
132+
if (item.Value.Id == context.Target.Value.Id)
133+
{
134+
item.IsExpand = true;
135+
}
136+
};
137+
}
138+
DraggableItems = TreeFoo.CascadingTree(items, cb);
125139
DraggableItems[0].IsExpand = true;
126140
if (DraggableItems.Count > 1)
127141
{

src/BootstrapBlazor.Server/Data/TreeFoo.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,10 +177,11 @@ public static List<TreeViewItem<TreeFoo>> GetCheckedTreeItems(string? parentId =
177177
/// 树状数据层次化方法
178178
/// </summary>
179179
/// <param name="items">数据集合</param>
180-
public static List<TreeViewItem<TreeFoo>> CascadingTree(IEnumerable<TreeFoo> items) => items.CascadingTree(null, (foo, parent) => foo.ParentId == parent?.Value.Id, foo => new TreeViewItem<TreeFoo>(foo)
180+
/// <param name="treeviewItemCallback">节点状态回调方法</param>
181+
public static List<TreeViewItem<TreeFoo>> CascadingTree(IEnumerable<TreeFoo> items, Action<TreeViewItem<TreeFoo>>? treeviewItemCallback = null) => items.CascadingTree(null, (foo, parent) => foo.ParentId == parent?.Value.Id, foo => new TreeViewItem<TreeFoo>(foo)
181182
{
182183
Text = foo.Text,
183184
Icon = foo.Icon,
184185
IsActive = foo.IsActive
185-
});
186+
}, treeviewItemCallback);
186187
}

0 commit comments

Comments
 (0)