I want to easily print the Scheduler calendar - month view, week view and more.
===
ADMIN EDIT
===
A possible approach for the time being is to implement printing functionality for the Scheduler in a similar fashion to how the Grid is printed here https://github.com/telerik/blazor-ui/tree/master/grid/print.
The approach relies on using JavaScript to invoke the browser print() method. Using CSS and @media print, you can customize the page and specify which elements should be visible when printing. For example, you may hide the toolbar and footer of the component, so only the calendar is visible.
Here is a runnable sample that demonstrates the approach: https://blazorrepl.telerik.com/wfkbbBca54BdZnUk24
Bug reproduced systematically on web browser Edge (131.0.29.03.146) & Firefox (134.0).
Beware: culture is fr-FR
Scheduler component sometimes put appointments at wrong coordinates (hour if ok but the day is wrong).
The screenshot "ExampleWrongCoordinates.png" set an example of an item wrongfully located. In this picture, console log shows details of the razor element who's supposed to be located on Tuesday 14th of January 2025 .. but which is rendered on Monday instead!
Appointments model defines "default (expected) property names Start & End":
private DateTime _start;
public DateTime Start
{
get { return _start; }
set { _start = value; }
}
private DateTime _end;
public DateTime End
{
get { return _end; }
set { _end = value; }
}
View is MultiDay but the glitch is the same on Week view.
Now if we switch on day view and navigate to Tuesday 14, scheduler shows the appointment on hours column! If we click it, a JS error is raised (Cf screenshot "ClickAppointmentWrongCoordinates.png").
I set the GridColumn DisplayFormat="{0: yyyy-MM-dd}" and the data reflects that format. The default filter control doesn't. How can I make the control do that?
---
ADMIN EDIT
For the time being, the way to affect the filter behavior is through a custom filter template. The format for date pickers and numeric textboxes comes from the app culture settings (see more here). You may also want to Follow this idea for easier selection of a default filter operator and limiting the filter operators choices.
---
When I try to move by drag and drop an event between resources the resource on the event is not updated.
I used this
<TelerikScheduler Data="@_trips" Height="500px"Hi,
I created a new .net 9 Blazor WebApp from the template (lastest version).
Shouldn't we be using the new app.MapStaticAssets(); vs the old app.UseStaticFiles() ?
Also in the App.razor, should we not also be using the @Assets[] in the <link href? /> ie:
<link rel="stylesheet" href="@Assets["app.css"]" />
Not sure if the ImportMap is required. Anyway getting my information from the Microsoft website for updating from 8 to 9.
See Here: MS link to upgrade from 8 to 9.
Also, when I posted this "Contact Support", I am not able to select .Net 9 as my framework and WebApp as my blazor hosting model, so put it as .net 8
Peter
When a Dialog is shown from a modal Window, the Dialog appears behind the Window on second opening.
Here is a test page with a workaround:
@inject IJSRuntime js
<TelerikButton OnClick="@( () => WindowVisible = true )">Show Window</TelerikButton>
<TelerikWindow @bind-Visible="@WindowVisible"
Modal="true">
<WindowActions>
<WindowAction Name="Minimize" />
<WindowAction Name="Close" />
</WindowActions>
<WindowTitle>
Window Title
</WindowTitle>
<WindowContent>
<p>Window Content</p>
<TelerikButton OnClick="@OnShowDialogButtonClick">Show Dialog</TelerikButton>
</WindowContent>
</TelerikWindow>
<TelerikDialog @bind-Visible="@DialogVisible"
Width="300px"
Class="dialog-on-window">
<DialogTitle>
Dialog Title
</DialogTitle>
<DialogContent>
<p>Dialog Content</p>
</DialogContent>
<DialogButtons>
<TelerikButton OnClick="@( () => OnDialogButtonClick(true) )">OK</TelerikButton>
</DialogButtons>
</TelerikDialog>
<script suppress-error="BL9992">
function bringDialogToTop() {
var dialogWrapper = document.querySelector(".dialog-on-window").closest(".k-dialog-wrapper");
if (dialogWrapper) {
dialogWrapper.style.zIndex = parseInt(dialogWrapper.style.zIndex) + 2;
}
}
</script>
@code {
private bool WindowVisible { get; set; }
private bool DialogVisible { get; set; }
private bool ShouldFocusDialog { get; set; }
private void OnShowDialogButtonClick()
{
DialogVisible = true;
ShouldFocusDialog = true;
}
private void OnDialogButtonClick(bool result)
{
DialogVisible = false;
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (ShouldFocusDialog)
{
ShouldFocusDialog = false;
await Task.Delay(1);
await js.InvokeVoidAsync("bringDialogToTop");
}
await base.OnAfterRenderAsync(firstRender);
}
}
The Expand/Collapse icon of the PivotGrid is always a font one. I am using SVG icons in my app and I don't see the any icon in the toggle button.
===
ADMIN EDIT
===
A workaround for the time being is to register the Font icons stylesheet even if you are using SVG icons.
After filtering a nullable DateTime column, the SelectAll checkbox in the GridCheckboxColumn becomes selected, and its functionality stops working correctly.
When enabling/disabling a form element that is defined in a child component, the element is successfully disabled, however a console error occurs. The error occurs whether the child component makes the update or the parent makes the update through a passed parameter. The error does not occur for form elements defined in the parent. The error does not occur for basic html input elements defined in the child.
Element definition:
<TelerikTextBox
Id="ElementMisc"
AutoComplete="new-password"
@bind-Value="@_searchModel.ElementMisc"
Enabled="!_elementSelectMode"
class="textbox-75"
DebounceDelay="0">
</TelerikTextBox>
Update Code defined in child:
if (results.Data.Count > 1)
{
_elementSelectMode= true;
StateHasChanged();
}
Console Error:
Uncaught (in promise) Error: Assertion failed - heap is currently locked
at mr (blazor.web.js:1:158963)
at Object.beginInvokeDotNetFromJS (blazor.web.js:1:157244)
at w.invokeDotNetMethodAsync (blazor.web.js:1:3978)
at C.invokeMethodAsync (blazor.web.js:1:5486)
at r.invokeMethodAsync (telerik-blazor.js:22:1272553)
at r.onBlur (telerik-blazor.js:22:1463592)
at ye.setOrRemoveAttributeOrProperty (blazor.web.js:1:28630)
at ye.applyAttribute (blazor.web.js:1:27574)
at ye.applyEdits (blazor.web.js:1:24601)
at ye.updateComponent (blazor.web.js:1:23606)
I have a master-detail draggable Grid scenario in which both Grids have RowDraggable="true". When the user starts dragging a row from the DetailTemplate Grid, a JavaScript error occurs:
TypeError: Argument 1 ('node') to Node.replaceChild must be an instance of Node
When I use control TelerikListBox with draggable mode (draggable="true") I need to provide drag handle selector "Draggable tag" which user will use for snap and move item.
Can I pass draggable handle selector? Where I will pas css class of the handle which will use form sort/move/drag items.
I need to restrict users use any other place of "Draggable item" - just specific place like handle Icon.
When a user hits the ENTER key at the end of their typing and expects the full text to be submitted, they potentially have partial text being submitted (depending on how quickly ENTER is hit). We know the general accepted solution is to set the DebounceDelay to zero, but we are using two-way binding with state management that results in a very laggy/delayed experience while typing is this is done.
Please allow pressing Enter or blurring the input to short-circuit the debouncing.
===
ADMIN EDIT
===
This request applies to all inputs - NumericTextBox, TextBox, TextArea, etc.
By design, when the TimePicker (and other date/time pickers) is bound to a non-nullable value, pressing the clear button clears the input only and sets the component in invalid state. In this case, ValueChanged and OnChange events do not fire and the component keeps its old value until a new valid value is entered.
I want to catch when the user presses the clear button. Instead of clearing the input, I want to reset the value to 00:00:00, so the component is still in a valid state.
===
ADMIN EDIT
===
For the time being, you can disable the built-in clear button. Instead, add a custom button/span, use CSS to position it inside the picker's input and handle its onclick event: https://blazorrepl.telerik.com/QTabvxPz46eLPVvJ00.
This request can potentially be related to providing an option to also detect when the user clears the value via the keyboard.
The request applies to all pickers (DateInput, DatePicker, DateRangePicker, DateTimePicker).
I saw the FloatingActionButton Web control available in KendoUI and ASP.NET Core and I would like it in UI for Blazor: https://demos.telerik.com/kendo-ui/floatingactionbutton/index