|
@inject IJSRuntime JSRuntime
<SfDatePicker @ref="datePicker>
<DatePickerEvents TValue="DateTime?" Created="CreatedHandler"></DatePickerEvents>
</SfDatePicker>
@code {
private SfDatePicker<DateTime?> datePicker;
public async Task CreatedHandler(object args)
{
// Call the JavaScript function using JSRuntime
await JSRuntime.InvokeVoidAsync("myBlazorInterop.myJavaScriptFunction",
DotNetObjectReference.Create(this));
}
[JSInvokable]
public void TriggerOnScrollToEnd()
{
// Show the date picker
datePicker.ShowPopupAsync();
datePicker.FocusAsync();
}
[_Layout.cshtml ]
<script>
window.myBlazorInterop
= {
myJavaScriptFunction: function (dotNetObjRef)
{
setTimeout(function ()
{
// Find the date icon
element and set tabIndex
var elem
= document.getElementsByClassName('e-date-icon');
if (elem
!= null &&
elem.length > 0) {
elem[0].tabIndex = 0;
elem[0].addEventListener('keydown', function (e)
{
if (e.key
== 'Enter') {
console.log("Enter Clicked")
var datepicker
= document.getElementsByClassName('e-datepicker')[0];
if (datepicker
&& datepicker.ej2_instances &&
datepicker.ej2_instances.length > 0) {
dotNetObjRef.invokeMethodAsync('TriggerOnScrollToEnd');
}
}
});
}
},
100);
}
};
</script>
|