Skip to content

Commit bba9ec2

Browse files
committed
refactor: 增加渲染逻辑
1 parent 714d065 commit bba9ec2

4 files changed

Lines changed: 60 additions & 5 deletions

File tree

src/components/BootstrapBlazor.DockView/BootstrapBlazor.DockView.csproj

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
</PropertyGroup>
1111

1212
<ItemGroup>
13-
<PackageReference Include="BootstrapBlazor" Version="$(BBVersion)" />
13+
<!--<PackageReference Include="BootstrapBlazor" Version="$(BBVersion)" />-->
14+
</ItemGroup>
15+
16+
<ItemGroup>
17+
<ProjectReference Include="..\..\..\..\BootstrapBlazor\src\BootstrapBlazor\BootstrapBlazor.csproj" />
1418
</ItemGroup>
1519

1620
<ItemGroup>

src/components/BootstrapBlazor.DockView/Components/DockViewComponent.cs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,10 @@ public class DockViewComponent : DockViewComponentBase
134134
[JsonIgnore]
135135
public Func<Task>? OnClickTitleBarCallback { get; set; }
136136

137+
[CascadingParameter]
138+
[NotNull]
139+
private DockViewV2? DockView { get; set; }
140+
137141
/// <summary>
138142
/// <inheritdoc/>
139143
/// </summary>
@@ -172,9 +176,9 @@ protected override void BuildRenderTree(RenderTreeBuilder builder)
172176
builder.CloseComponent();
173177
}
174178

175-
if (Visible)
179+
if (DockView.IsActiveTab(Key))
176180
{
177-
//builder.AddContent(70, ChildContent);
181+
builder.AddContent(70, ChildContent);
178182
}
179183
builder.CloseElement();
180184
}

src/components/BootstrapBlazor.DockView/Components/DockViewConfig.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
1+
// Copyright (c) Argo Zhang (argo@163.com). All rights reserved.
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33
// Website: https://www.blazor.zone or https://argozhang.github.io/
44

@@ -77,6 +77,16 @@ class DockViewConfig
7777
/// </summary>
7878
public string? SplitterCallback { get; set; }
7979

80+
/// <summary>
81+
/// 获得/设置 加载当前激活标签页事件回调
82+
/// </summary>
83+
public string? LoadActiveTabs { get; set; }
84+
85+
/// <summary>
86+
/// 获得/设置 加载当前未激活标签页事件回调
87+
/// </summary>
88+
public string? LoadInactiveTabs { get; set; }
89+
8090
/// <summary>
8191
/// 获得/设置 客户端缓存键值
8292
/// </summary>

src/components/BootstrapBlazor.DockView/Components/DockViewV2.razor.cs

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,9 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
201201
PanelVisibleChangedCallback = nameof(PanelVisibleChangedCallbackAsync),
202202
LockChangedCallback = nameof(LockChangedCallbackAsync),
203203
SplitterCallback = nameof(SplitterCallbackAsync),
204-
Contents = _components
204+
Contents = _components,
205+
LoadActiveTabs = nameof(LoadActiveTabs),
206+
LoadInactiveTabs = nameof(LoadInactiveTabs)
205207
};
206208

207209
private string GetVersion() => Version ?? _options.Version ?? "v1";
@@ -258,6 +260,41 @@ public async Task PanelVisibleChangedCallbackAsync(string title, bool status)
258260
}
259261
}
260262

263+
private HashSet<string> _activeTabs = new();
264+
private Task LoadActiveTabs(List<string> tabs)
265+
{
266+
// 客户端请求渲染当前激活的标签
267+
_activeTabs.Clear();
268+
foreach (var tab in tabs)
269+
{
270+
_activeTabs.Add(tab);
271+
}
272+
273+
StateHasChanged();
274+
return Task.CompletedTask;
275+
}
276+
277+
private HashSet<string> _inactiveTabs = new();
278+
private Task LoadInactiveTabs(List<string> tabs)
279+
{
280+
// 客户端请求渲染当前未激活的标签
281+
_activeTabs.Clear();
282+
foreach (var tab in tabs)
283+
{
284+
_activeTabs.Add(tab);
285+
}
286+
287+
StateHasChanged();
288+
return Task.CompletedTask;
289+
}
290+
291+
/// <summary>
292+
/// 检查指定 Key 值 DockviewComponent 是否处于激活状态
293+
/// </summary>
294+
/// <param name="key"></param>
295+
/// <returns></returns>
296+
public bool IsActiveTab(string? key) => string.IsNullOrEmpty(key) ? false : _activeTabs.Contains(key);
297+
261298
/// <summary>
262299
/// 锁定回调方法 由 JavaScript 调用
263300
/// </summary>

0 commit comments

Comments
 (0)