How do I limit entry to just allow the MaxLength in the field? Yes, I get an error when I enter 4000 characters in a field... but, why does it accept 4000 characters? Is there a setting to limit/stop/truncate their entry?
<TelerikForm Model="@ContextLink" Class="gsi-padding-10">
<FormItems>
@if (IsDebug)
{
<FormItem Field="@nameof(ContextLink.Id)" LabelText="Id" Enabled="false" />
}
<FormItem Field="@nameof(ContextLink.Name)" LabelText="@nameof(ContextLink.Name)" Enabled="true" />
<FormItem Field="@nameof(ContextLink.Description)" LabelText="@nameof(ContextLink.Description)" Enabled="true" />
<FormItem Field="@nameof(ContextLink.RelativeUrl)" LabelText="@nameof(ContextLink.RelativeUrl)" Enabled="true" />
<FormItem Field="@nameof(ContextLink.ComponentFqn)" LabelText="@nameof(ContextLink.ComponentFqn)" Enabled="false" />
</FormItems>
<FormButtons />
</TelerikForm>
[MaxLength(50)]
[Required]
public string Name { get; set; }
Hi guys,
I have a grid with inline editing and I want to add some custom validation, as you can check below.
<TelerikGrid Data="@Model.Equipments"
EditMode="GridEditMode.Inline"
OnUpdate="@OnUpdate"
OnCreate="@OnCreate"
OnDelete="@OnDelete">
<GridToolBarTemplate>
<GridCommandButton Command="Add">Add new equipment</GridCommandButton>
</GridToolBarTemplate>
<GridColumns>
<GridColumn Field="@nameof(Equipment.Code)"
Title="Code">
<EditorTemplate>
@{
Equipment item = (Equipment)context;
}
<div class="k-form-field-wrap">
<TelerikTextBox @bind-Value="item.Code" />
<TelerikValidationMessage For="@(() => item.Code)" />
</div>
</EditorTemplate>
</GridColumn>
<GridColumn Field="@nameof(Equipment.Name)"
Title="Name">
<EditorTemplate>
@{
Equipment item = (Equipment)context;
}
<div class="k-form-field-wrap">
<TelerikTextBox @bind-Value="item.Name" />
<TelerikValidationMessage For="@(() => item.Name)" />
</div>
</EditorTemplate>
</GridColumn>
<GridCommandColumn Width="185px">
<GridCommandButton Command="Edit">Edit</GridCommandButton>
<GridCommandButton Command="Delete">Delete</GridCommandButton>
<GridCommandButton Command="Save" ShowInEdit="true">Save</GridCommandButton>
<GridCommandButton Command="Cancel" ShowInEdit="true">Cancel</GridCommandButton>
</GridCommandColumn>
</GridColumns>
</TelerikGrid>
public sealed class Equipment
{
public Guid Id { get; set; }
[Required]
public string? Name { get; set; }
[Required]
public string? Code { get; set; }
}
If I don't fill in the Name or Code, I and I hit Save, I can see the validation message under the corresponding column in the row that is in edit mode. So far so good.
However, say that I want the code to be unique. How to I tackle this one? I would like to see a validation message under the Code textbox "That code already exists", or whatever the message might be.
Any guidance on the recommended approach here would be great—thanks!
Regards,
Bogdan
I'm using the TelerikTooltip (with tooltipposition: top) to wrap an icon on a page, so that when the icon is hovered, the tooltip appears. It appears that when the size of the page is such that the tooltip would overlap with the edge of the page, the tooltip adjusts its location. When it does so, it seems that telerik blazor initially attempts to place the callout (using css left) at the middlepoint of the tooltip, then corrects itself, and places the callout at the correct location above the item it is attached to. This shows visually as the callout appearing in one location, then flickering and appearing in another location. I have tried a few troubleshooting steps, including setting the css of the tooltip callout to left: unset, which worked perfectly on my local version of our application, but did not work once it was pushed to our application environment. In the local, this change made it so that the callout would not be placed in the midpoint initially but would skip that step and be correctly placed above the icon as desired. In the application environment however, it would put the callout at the leftmost point of the tooltip, and then do the same flickering, and then put it in the correct location. This makes me think that the issue could be solved if I could find a way to skip the step where it attempts to put the callout in the midpoint of the tooltip. However, I'm unable to find a way to make it do that.
My question is: is there a known workaround for this issue which I can use, or is this something that can be fixed by telerik? Or are there any suggestions of other things I can try, given that using "left: unset" in css was pretty close to working?
Here is the code used for the icon's razor file.
<TelerikTooltip Class="infoIcon-tooltip" TargetSelector="@($"#{IconId}")" ShowOn="@TooltipShowEvent.Hover" Position="TooltipPosition.Top"></TelerikTooltip>
<span id="@IconId" class="infoIcon" title="@Title"/>
Here is the css used for the tooltip and its callout (which did not quite work correctly):
.infoIcon-tooltip .k-tooltip { background: var(--icon-tooltip-grey); border: 0.5px solid var(--icon-tooltip-grey); border-radius: 4px; } .infoIcon-tooltip .k-tooltip-content { font-family: Tenorite,sans-serif,Arial; font-size: 16px; word-wrap: break-word; width: -moz-fit-content; width: fit-content; height: -moz-fit-content; height: fit-content; color: white; } .infoIcon-tooltip .k-tooltip .k-callout { color: var(--icon-tooltip-grey); left: unset; }
Hi,
I'm using the carousel as a rotating dashboard.
Is it possible to only load the data when the controls become visible, and not all when the page loads.
Thanks
Nick
<DockManagerContentPane HeaderText="@AppService.CurrentPageTitle"
AllowFloat="false"
Unpinnable="false"
Closeable="false"
Dockable="false">
Hi,
Is there a way to open a date picker component targeting the month of a future minimum date ?
For example, I have a minimum date in 3 months. When I open the date picker, the popup is focus on today. When I change the month or click on 'Today', the focus goes on the month of this future date as expected.
I would like to have this behavior when opening the popup.
I tried to use the NavigateTo() with the OnOpen() event but no luck.
REPL example : https://blazorrepl.telerik.com/cJYCGmlk51WrceTj48
Thanks in advance
When I call "Dialogs.AlertAsync", I get null reference error. Any reason why? The whole page is under TelerikRootComponent.
<TelerikGrid Data="@availableSchedules" class="myTelerik-grid" SelectionMode="GridSelectionMode.Multiple"
SelectedItems="@selectedSchedules"
SelectedItemsChanged="@((IEnumerable<BTWInstructorAvailability> newSelected) => OnRowSelect(newSelected))"
ScrollMode="GridScrollMode.Scrollable" Height="300px">
<GridColumns>
<GridCheckboxColumn CheckBoxOnlySelection="true" SelectAll="false" />
<GridColumn Field="InstructorName" Title="Instructor Name" />
<GridColumn Field="StartDate" DisplayFormat="{0:MM/dd/yyyy}" Title="Start Date" />
<GridColumn Field="EndDate" DisplayFormat="{0:MM/dd/yyyy}" Title="End Date" />
<GridColumn Field="Languages" Title="Languages" />
</GridColumns>
</TelerikGrid>
protected async Task OnRowSelect(IEnumerable<BTWInstructorAvailability> newSelected)
{
// Enforce max selection of 3
if (newSelected.Count() > 3)
{
await Dialogs.AlertAsync("Maximum of 3 lessons can be selected.");
return;
}
selectedSchedules = newSelected;
}
I have a grid that is needs to use EditMode=GridEditMode.Incell. I have a Telerik CheckBox defined under Template for a GridColumn. In order to prevent the need to click twice on the checkbox in the grid (click once to enter edit and click again to actually change the state of the checkbox to checked/unchecked), I have to set the GridColumn to Editable=false and then use OnChange to set the model value:
<TelerikGrid @ref="@BookingEquipmentGridRef"
Data="@BookingEquipmentList"
EditMode="@GridEditMode.Incell"
OnEdit="@OnEquipmentEdit"
OnRowClick="@OnEquipmentRowClick"
OnRowRender="@OnRowRenderHandler"
OnUpdate="@OnEquipmentUpdate"
OnStateInit="@((GridStateEventArgs<BookingEquipmentModel> args) => OnEquipmentGridStateInit(args))"
Height="226px"
Size="@ThemeConstants.Grid.Size.Small"
SelectionMode="GridSelectionMode.Single"
SelectedItems="@SelectedEquipmentList"
FilterMode="GridFilterMode.FilterMenu"
Resizable="true"
Sortable="true"
Reorderable="true"
Pageable="true"
EnableLoaderContainer="false"
PageSize="25">
<GridColumns>
<GridColumn Field=@nameof(BookingEquipmentModel.IsChassis) Title="Chassis" Editable="false" Filterable="false" Width="5rem">
<Template>
@{
var bem = (BookingEquipmentModel)context;
}
<TelerikCheckBox Value="@bem.IsChassis" ValueExpression="@(() => bem.IsChassis)" ValueChanged="@((bool newValue) => OnChassisChanged(newValue, bem))" />
</Template>
</GridColumn>
</GridColumns>
</TelerikGrid>
Because I have to set Editable=false the OnEdit event is not fired so I no longer can use args.IsCancelled = true to prevent cell update. In my OnChassisChanged I can not assigned the value to the model but the visual state will no longer match.
private Task OnChassisChanged(bool newValue, object item)
{
if (item == null) return Task.CompletedTask;
BookingEquipmentModel selectedEquipmentModel = (BookingEquipmentModel)item;
if (EditableState(SelectedBooking, selectedEquipmentModel) == BookingEquipmentState.EditableStatus.No) return Task.CompletedTask;
selectedEquipmentModel.IsChassis = newValue;
selectedEquipmentModel.IsEdit = true;
DataState.State = DataState.States.UnSaved;
return Task.CompletedTask;
}
My users were complaining about having to click twice on a checkbox to set it's new state (checked or unchecked) ... and I agree with their issue, but I can't seem to find a solution (and keep using the TelerikCheckBox) ... any suggestions?
I seem to recall reading another thread from some other user having similar problem, but seem unable to locate it again.