|
@using Syncfusion.Blazor.Calendars
<button id="button" @onclick="OnClick">Click to Open the DatePicker</button>
@if (this.isOpen)
{
<SfCalendar TValue="DateTime?"></SfCalendar>
}
@code{
SfCalendar<DateTime?> dateObj;
public bool isOpen { get; set; } = false;
public void OnClick()
{
this.isOpen = !this.isOpen;
}
} |
|
@using Syncfusion.Blazor.Calendars
<button id="button" @onclick="OnClick">Click to Open the DatePicker</button>
<SfDatePicker @ref="dateObj" TValue="DateTime?" Start="CalendarView.Year" Depth="CalendarView.Year">
<DatePickerEvents TValue="DateTime?" ValueChange="OnChange"></DatePickerEvents>
</SfDatePicker>
@code{
SfDatePicker<DateTime?> dateObj;
public bool ShowPopupCalendar { get; set; } = false;
public void OnClick()
{
if (!this.ShowPopupCalendar)
{
this.dateObj.Show();
this.ShowPopupCalendar = true;
}
else
{
this.dateObj.Hide();
this.ShowPopupCalendar = false;
}
}
public void OnChange()
{
this.ShowPopupCalendar = false;
}
}
<style>
.e-input-group.e-control-wrapper { // To hide the date picker’s input
visibility: hidden;
}
</style> |
|
[index.razor]
@using Syncfusion.Blazor.Navigations
@using Syncfusion.Blazor.Lists
@using Syncfusion.Blazor.Buttons
<SfSidebar ID="NavMenu" @ref="sidebarObj" Width="300px" ShowBackdrop="true" Position=SidebarPosition.Right EnableGestures="false">
<div style="text-align: center;" class="text-content">
<span>Sidebar</span>
<div class="datepicker"></div>
<SfButton @onclick="Close" CssClass="e-btn">Toggle Sidebar</SfButton>
<span>
<SfButton @onclick="OnClick" CssClass="e-btn">Click to Open the DatePicker</SfButton>
<SfDatePicker ID="datepicker" @ref="dateObj" TValue="DateTime?" Start="CalendarView.Year" Depth="CalendarView.Year">
<DatePickerEvents TValue="DateTime?" ValueChange="OnChange" OnOpen="OnOpen" ></DatePickerEvents>
</SfDatePicker>
</span>
</div>
</SfSidebar>
<div style="text-align:center">
<SfButton @onclick="Close" CssClass="e-btn">Toggle Sidebar</SfButton>
</div>
@code {
[Inject]
protected IJSRuntime JsRuntime { get; set; }
SfSidebar sidebarObj;
public void Close()
{
this.sidebarObj.Toggle();
}
SfDatePicker<DateTime?> dateObj;
public bool ShowPopupCalendar { get; set; } = false;
public void OnClick()
{
if (!this.ShowPopupCalendar)
{
this.dateObj.Show();
this.ShowPopupCalendar = true;
}
else
{
this.dateObj.Hide();
this.ShowPopupCalendar = false;
}
}
public void OnChange()
{
this.ShowPopupCalendar = false;
}
public void OnOpen (PopupObjectArgs args)
{
JsRuntime.InvokeVoidAsync("onOpen", "datepicker");
}
}
<style>
.e-input-group.e-control-wrapper {
visibility: hidden;
}
</style> |
|
[wwwroot/onOpen.js]
window.onOpen = (id) => {
var instance = document.getElementById(id).ej2_instances[0];
instance.popupObj.offsetX = 0; // provide the value as number based on application needs
instance.popupObj.offsetY =0; // provide the value as number based on application needs
}; |
|
[_Host.cshtml]
<script src="~/onOpen.js"></script> |
|
<SfDatePicker @ref="datetime" ID="datetime" AllowEdit="true" Value="@aaaa" Width="250px" CssClass="dtPicker" ShowClearButton="false" ShowTodayButton="true">
<DatePickerEvents TValue="DateTime?" OnOpen="OnOpen"></DatePickerEvents>
</SfDatePicker>
|
|
|
|
.e-sidebar.e-right{ overflow-x: hidden;
}
|
|
|
|
function onOpen( id )
{
setTimeout(() => {
var instance = document.getElementById(id).blazor__instance;
instance.popupContainer.ej2_instances[0].offsetX = -25;
instance.popupContainer.ej2_instances[0].offsetY = 0;
},200)
} |