private string? ClassString => CssBuilder.Default("bb-transfer")
.AddClass("has-height", !string.IsNullOrEmpty(Height))
.AddClass("wrap-item", IsWrapItem)
+ .AddClass("wrap-item-text", IsWrapItemText)
.AddClassFromAttributes(AdditionalAttributes)
.Build();
diff --git a/src/BootstrapBlazor/Components/Transfer/Transfer.razor.scss b/src/BootstrapBlazor/Components/Transfer/Transfer.razor.scss
index d09ab83cfdc..5b8a832ce9d 100644
--- a/src/BootstrapBlazor/Components/Transfer/Transfer.razor.scss
+++ b/src/BootstrapBlazor/Components/Transfer/Transfer.razor.scss
@@ -28,12 +28,29 @@
}
&.wrap-item {
+ .transfer-panel-list {
+ flex-direction: row;
+ flex-wrap: wrap;
+
+ .transfer-panel-item {
+ width: var(--bb-transfer-panel-item-width);
+ }
+ }
+ }
+
+ &.wrap-item-text {
.transfer-panel-item .form-check-input + .form-check-label {
white-space: normal;
text-overflow: clip;
overflow: visible;
}
}
+
+ .transfer-panel-item .form-check-input + .form-check-label {
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ }
}
.transfer-panel {
@@ -70,13 +87,16 @@
max-height: var(--bb-transfer-panel-list-max-height);
min-height: var(--bb-transfer-panel-list-min-height);
display: flex;
- flex-wrap: wrap;
+ flex-direction: column;
+
+ .form-check {
+ min-height: unset;
+ }
}
.transfer-panel-item {
border-radius: var(--bs-border-radius);
padding: var(--bb-transfer-panel-item-padding);
- width: var(--bb-transfer-panel-item-width);
}
.transfer-panel-item .form-check-input + .form-check-label {
diff --git a/src/BootstrapBlazor/Components/Transfer/TransferPanel.razor b/src/BootstrapBlazor/Components/Transfer/TransferPanel.razor
index 512a0be2ac8..fa6fd97ae75 100644
--- a/src/BootstrapBlazor/Components/Transfer/TransferPanel.razor
+++ b/src/BootstrapBlazor/Components/Transfer/TransferPanel.razor
@@ -17,7 +17,8 @@
@if (ShowSearch)
{
-
+
@@ -30,8 +31,8 @@
{
var state = item.Active ? CheckboxState.Checked : CheckboxState.UnChecked;
+ DisplayText="@item.Text" Value="item" ShowAfterLabel="true" ShowLabel="false"
+ State="@state" OnStateChanged="@OnStateChanged">
}
else
{
diff --git a/test/UnitTest/Components/TransferTest.cs b/test/UnitTest/Components/TransferTest.cs
index 4939a0e1c60..48543206461 100644
--- a/test/UnitTest/Components/TransferTest.cs
+++ b/test/UnitTest/Components/TransferTest.cs
@@ -12,8 +12,20 @@ public void Items_Ok()
{
// 未设置 Items 为空
var cut = Context.RenderComponent>();
+ cut.Contains("class=\"bb-transfer wrap-item\"");
+
+ cut.SetParametersAndRender(pb =>
+ {
+ pb.Add(a => a.IsWrapItem, false);
+ });
cut.Contains("class=\"bb-transfer\"");
+ cut.SetParametersAndRender(pb =>
+ {
+ pb.Add(a => a.IsWrapItemText, true);
+ });
+ cut.Contains("class=\"bb-transfer wrap-item-text\"");
+
// 设置 Items
cut.SetParametersAndRender(pb =>
{