Use ButtonsTemplate to define custom action buttons (e.g., Cancel, Reset, Apply). You can access the picker instance via the context object to call methods like context.ClickApply, context.ClickCancel, or context.Close(). To check the current selection state before applying, use context.TStartDate and context.TEndDate.
<DateRangePicker @bind-StartDate="StartDate" @bind-EndDate="EndDate">
<ButtonsTemplate>
<button class="cancelBtn btn btn-sm btn-default"
@onclick="@context.ClickCancel" type="button">Cancel</button>
<button class="cancelBtn btn btn-sm btn-default"
@onclick="@(e => ResetClick(e, context))" type="button">Reset</button>
<button class="applyBtn btn btn-sm btn-primary" @onclick="@context.ClickApply"
disabled="@(context.TStartDate == null || context.TEndDate == null)"
type="button">Apply</button>
</ButtonsTemplate>
</DateRangePicker>
@code {
DateTimeOffset? StartDate { get; set; }
DateTimeOffset? EndDate { get; set; }
void ResetClick(MouseEventArgs e, DateRangePicker picker)
{
StartDate = null;
EndDate = null;
// Close the picker
picker.Close();
// Fire OnRangeSelectEvent
picker.OnRangeSelect.InvokeAsync(new DateRange());
}
}