diff --git a/src/BootstrapBlazor.Server/Components/Samples/DateTimePickers.razor b/src/BootstrapBlazor.Server/Components/Samples/DateTimePickers.razor
index d515b753b46..2f92e5742a4 100644
--- a/src/BootstrapBlazor.Server/Components/Samples/DateTimePickers.razor
+++ b/src/BootstrapBlazor.Server/Components/Samples/DateTimePickers.razor
@@ -5,7 +5,7 @@
@Localizer["Description"]
-
diff --git a/src/BootstrapBlazor/BootstrapBlazor.csproj b/src/BootstrapBlazor/BootstrapBlazor.csproj
index 1eb7e4c700e..a11bab70aa0 100644
--- a/src/BootstrapBlazor/BootstrapBlazor.csproj
+++ b/src/BootstrapBlazor/BootstrapBlazor.csproj
@@ -1,7 +1,7 @@
- 9.9.3
+ 9.10.0-beta01
diff --git a/src/BootstrapBlazor/Components/DateTimePicker/DatePickerBody.razor b/src/BootstrapBlazor/Components/DateTimePicker/DatePickerBody.razor
index 4c373fdc0a1..8db866aa238 100644
--- a/src/BootstrapBlazor/Components/DateTimePicker/DatePickerBody.razor
+++ b/src/BootstrapBlazor/Components/DateTimePicker/DatePickerBody.razor
@@ -40,7 +40,7 @@
+ @if (IsDateTimeMode && PickTimeMode == PickTimeMode.Dropdown)
+ {
+
+ @TimePlaceHolder
+
+
+
+ }
@if (ShowFooter)
{
-
-@code {
-
-}
diff --git a/test/UnitTest/Components/DateTimePickerTest.cs b/test/UnitTest/Components/DateTimePickerTest.cs
index 8cb7b56ba3f..1cd102d62d8 100644
--- a/test/UnitTest/Components/DateTimePickerTest.cs
+++ b/test/UnitTest/Components/DateTimePickerTest.cs
@@ -322,6 +322,7 @@ public void SwitchTimeView_Ok()
{
builder.Add(a => a.Value, new DateTime(2023, 10, 1, 1, 0, 0));
builder.Add(a => a.ViewMode, DatePickerViewMode.DateTime);
+ builder.Add(a => a.PickTimeMode, PickTimeMode.Clock);
});
var labels = cut.FindAll(".picker-panel-header-label");
@@ -354,6 +355,39 @@ public void NotDateTime_Error()
Context.RenderComponent>();
});
}
+
+ [Fact]
+ public async Task PickTimeMode_Ok()
+ {
+ var cut = Context.RenderComponent(builder =>
+ {
+ builder.Add(a => a.ViewMode, DatePickerViewMode.DateTime);
+ builder.Add(a => a.PickTimeMode, PickTimeMode.Dropdown);
+ builder.Add(a => a.ShowFooter, true);
+ builder.Add(a => a.Value, DateTime.Today.AddDays(-1));
+ builder.Add(a => a.TimeFormat, "hh\\:mm");
+ });
+
+ cut.Contains("picker-panel-time");
+
+ // 点击时间选择器
+ var input = cut.Find(".picker-panel-time .form-control");
+ await cut.InvokeAsync(() => input.Click());
+ cut.Contains("picker-panel-time show");
+
+ // 点击时间选择器下拉框中的确定按钮
+ var picker = cut.FindComponent();
+ await cut.InvokeAsync(() => picker.Instance.OnClose!());
+
+ var ts = DateTime.Now.TimeOfDay;
+ await cut.InvokeAsync(() => picker.Instance.OnConfirm!(ts));
+ Assert.Contains(ts.ToString("hh\\:mm"), cut.Markup);
+
+ cut.SetParametersAndRender(pb =>
+ {
+ pb.Add(a => a.TimeFormat, null);
+ });
+ }
#endregion
#region DatePicker