Dear Telerik!
As a developer I am very pleased with the UI components that you are providing for .NET Blazor systems.
Even though, we often update the datasource of an autocomplete field (e.g.: TelerikMultiSelect) using an HTTP request. And invoking this endpoint on every new character is not the most economic approach. We did some workaround with timers and etc. but this way the code become needlessly complicated and introduced new bugs also.
Please consider creating a component or enabling the existing ones with an event that is fired on every input changes. But it waits a little time after the last input change and keeps collecting the additional characters so the event can present batches of inputs.
Kind regards,
Balázs Koncz
This might not be considered a bug but since this behavior changed when we upgraded to 3.0, it might be considered as such unless there is no documentation about this (we have not been able to find it). I am still unsure where we are to just ask support questions, as the feedback portal seem to force us into either choosing feature or bug.
After upgrading to Telerik Blazor 3.0, the captions are suddenly above the fields and no longer to the left of them. This might be preferable in some cases, but it should then be something you enable/change yourself.
How can we control this behavior (probably via CSS)?
Is it perhaps a way we can also control so that the grids popup form gets more compact, like perhaps displaying the fields in two columns instead of the default of just one?
Thanks.
Working with UI Blazor version 3.0.0
Setting a sort descriptor in the OnStateInitHandler.
Everything works, but I need to customize the sort. I need "A" and "a" to sort the same. I also need blanks to sort at the bottom. A custom sort method. Can't figure out how to implement a SortCompare, can't find an example.
Here's what I have
SortDescriptors = new List<SortDescriptor>()Maybe I'm doing it wrong...
I have a Telerik Window that is modal=true
Within the Telerik Window, I have a component... and within that component, other components.
I want to post a TelerikDialog. "Do you want to save changes?"
If I add it to the component, it appears behind the main modal.
If I add it to the main Telerik Window, it doesn't appear at all.
How do you show a TelerikDialog on a TelerikWindow that is modal?
-Bert
When you have a TelerikNumericTextBox bound to a non nullable field (like int test) it will display a 0 like this which is correct
But when you start changing the value, that initial 0 will still remain like (1234 entered)
It will however sort itself out once you leave the field
But it is still confusing to users and also makes then try to remove the initial 0.
The initial 0 should not be displayed when user has switched focus to a field and started entering text. This problem does not seem to happen if you have already entered a value and revisit the textbox.
Ideally formatting (in this case currency) should also be displayed when in Edit but that is perhaps another topic.
Thanks.
This request is to add the aria-invalid attribute to your components so that we can manually flag a field for screen reader accessibility if there is a validation issue. I perform some validation rules manually without using an edit form, and would like to be able to add that attribute to the controls when there is an issue. Numeric Text Box is one of your controls in particular that I need this for.
Additionally, adding a title attribute to these controls would be helpful to allow providing tooltips on the control.
I would also like to point out that allowing attribute splatting in your controls would solve both of these requests and any future attributes that may come up that developers may need to add.
Hi, we are using a tile layout for charts and are having an issue where the tooltips for the second row of tiles are appearing at the bottom of the screen away from the chart or not at all. Then when we scroll back to the first row of tiles the tool tips are out of alignment as well. The following screen shot shows an example.
We have a component that has a tab strip and the tile layout with the following code
<TabStripTab Title="@tabName">
@((MarkupString)tabHeading)
<TelerikTileLayout Columns="6"
RowHeight="225px"
ColumnWidth="285px"
Reorderable="true"
Resizable="true"
OnResize="@ItemResize"
OnReorder="@ItemReorder"
@ref="@TileLayout">
<TileLayoutItems>
@foreach (CustomChartViewModel chart in tab.Charts)
{
int colSpan = 2;
int rowSpan = 2;
<TileLayoutItem RowSpan="@rowSpan" ColSpan="@colSpan">
<HeaderTemplate>
<div style="text-align: right">
<TelerikButton OnClick="@(() => onDeleteChart(chart.Id, tab.Id))">X</TelerikButton>
</div>
</HeaderTemplate>
<Content>
<ChartComponent ViewModel="@chart" @ref="@charts[chart.Id]" />
</Content>
</TileLayoutItem>
}
</TileLayoutItems>
</TelerikTileLayout>
</TabStripTab>
And then a chart component that renders the individual charts with a tooltip
<TelerikChart @ref="@ChartRef" Height="100%" Width="100%" OnSeriesClick="@OnSeriesClickHandler">
<ChartTooltip Visible="true">
<Template>
<TelerikIcon Icon="information" />
@(context.Percentage.ToString("P", nfi))<br />
@((context.DataItem as MyDataModel).toolTip)
</Template>
</ChartTooltip>
<ChartSeriesItems>
<ChartSeries Type="ChartSeriesType.Donut" Data="@Data" Field="value" CategoryField="category" ColorField="color">
<ChartSeriesLabels Position="ChartSeriesLabelsPosition.OutsideEnd"
Visible="@ViewModel.ShowLabels"
Background="transparent"
Template="#= category #: #= value#">
</ChartSeriesLabels>
</ChartSeries>
</ChartSeriesItems>
<ChartTitle Text="@ViewModel.Name"></ChartTitle>
<ChartLegend Position="ChartLegendPosition.Bottom" Visible="@ViewModel.ShowLegend"></ChartLegend>
</TelerikChart>
Not finding any examples or similar, so I wanted to see if there is a way to include a Gantt Chart into a WordsProcessing document. I am currently bringing the data into a table, but my end-user has requested to see the chart view of the same data.
if (JobMilestones.Count > 0) { editor.InsertText("MILESTONES").FontWeight = FontWeights.Bold; Table tblMilestone = editor.InsertTable(JobMilestones.Count + 1, 3); tblMilestone.PreferredWidth = new TableWidthUnit(720); Paragraph p = tblMilestone.Rows[0].Cells[0].Blocks.AddParagraph(); tblMilestone.Rows[0].RepeatOnEveryPage = true; tblMilestone.Rows[0].Cells[0].Borders = tcb; tblMilestone.Rows[0].Cells[1].Borders = tcb; tblMilestone.Rows[0].Cells[2].Borders = tcb; editor.MoveToParagraphStart(p); editor.InsertText("Task").FontWeight = FontWeights.Bold; p = tblMilestone.Rows[0].Cells[1].Blocks.AddParagraph(); editor.MoveToParagraphStart(p); editor.InsertText("Start").FontWeight = FontWeights.Bold; p = tblMilestone.Rows[0].Cells[2].Blocks.AddParagraph(); editor.MoveToParagraphStart(p); editor.InsertText("End").FontWeight = FontWeights.Bold; int x = 1; foreach (FlatModel fm in JobMilestones) { p = tblMilestone.Rows[x].Cells[0].Blocks.AddParagraph(); editor.MoveToParagraphStart(p); editor.InsertText(fm.TaskTitle); p = tblMilestone.Rows[x].Cells[1].Blocks.AddParagraph(); editor.MoveToParagraphStart(p); editor.InsertText(fm.StartDate.ToShortDateString()); p = tblMilestone.Rows[x].Cells[2].Blocks.AddParagraph(); editor.MoveToParagraphStart(p); editor.InsertText(fm.EndDate.ToShortDateString()); tblMilestone.Rows[x].Cells[0].Borders = tcb; tblMilestone.Rows[x].Cells[1].Borders = tcb; tblMilestone.Rows[x].Cells[2].Borders = tcb; x += 1; } editor.MoveToTableEnd(tblMilestone); //editor.InsertLine(""); editor.InsertBreak(BreakType.LineBreak); }
With an item selected, I want to reset the drop down list to the state it has when the page loads, i.e. populated with nothing selected.
Setting the backing filed to zero does not work. I have read Clear the selection, I know it works if you have a default text,
I dont't want to have a default text.
As you can see in the repl, there's some more experiments, since I thought I could maybe clear the content and re-populate
the list to reset it.
Setting the data source to null does nothing?!?!
Clearing the data source removes the items in it, but keeps the selected value!?!?
I've seen answers to this question that suggests using CSS to achieve this, but that's just stupid and shouldn't be necessary.
Finally, we have the hack solution, which is totally crazy but seems to work.
I leave it here for others to see, since it seems a lot of people also have this problem.
Please fix this.
I have a telerikdropdownlist in the EditorTemplate of a Grid. If a user uses the keyboard to speed the navigation of the dropdown (for example: they type a T to immediately scroll to the T section), then clicks on a selection further down in the list, the selected item becomes the item navigated to via the Keyboard, not the item that is actually clicked on. Clicking on an item (without using the keyboard navigation first) works as expected. I was able to replicate this behavior in REPL using the following code:
<br />
<br />
<TelerikDropDownList
Data = "@People"
@bind-Value="@SelectedUser"
TextField="LastFirst"
ValueField="Id"
Width="400px"
/>
<br />
<br />
<TelerikGrid
Data="@Assets"
EditMode="GridEditMode.Inline"
Width="800px"
OnUpdate="@Update"
>
<GridColumns>
<GridColumn Field="@nameof(Asset.AssetId)" Title="ID" Width="50px"/>
<GridColumn Field="@nameof(Asset.BarCode)" Title="BarCode" Width="125px"/>
<GridColumn Field="@nameof(Asset.UserId)" Title="User" Width="125px">
<Template>
@{
CurrentAsset = (Asset)context;
Person? p = People.FirstOrDefault<Person>(x => x.Id == CurrentAsset.UserId);
if(p != null)
{
<span>@p.LastFirst</span>
}
}
</Template>
<EditorTemplate>
@{
CurrentAsset = (Asset)context;
<TelerikDropDownList
Data = "@People"
@bind-Value="@CurrentAsset.UserId"
TextField="LastFirst"
ValueField="Id"
/>
}
</EditorTemplate>
</GridColumn>
<GridCommandColumn Width="100px" Locked="true">
<GridCommandButton Command="Save" Icon="save" ShowInEdit="true"></GridCommandButton>
<GridCommandButton Command="Edit" Icon="edit"></GridCommandButton>
<GridCommandButton Command="Delete" Icon="delete"></GridCommandButton>
<GridCommandButton Command="Cancel" Icon="cancel" ShowInEdit="true"></GridCommandButton>
</GridCommandColumn>
</GridColumns>
</TelerikGrid>
<br />
@code {
public List<Person> People = new();
public List<Asset> Assets = new();
int SelectedUser = 0;
Asset CurrentAsset = new();
protected override void OnInitialized()
{
LoadData();
base.OnInitialized();
}
public void LoadData()
{
People.Add(new Person(1, "Brent", "Tuominen"));
People.Add(new Person(2, "Tina", "Tuominen"));
People.Add(new Person(3, "Casey", "Tuominen"));
People.Add(new Person(4, "Ryan", "Tuominen"));
People.Add(new Person(5, "Alex", "Tuominen"));
Assets.Add(new Asset(1, "BC001"));
Assets.Add(new Asset(2, "BC002"));
Assets.Add(new Asset(3, "BC003"));
Assets.Add(new Asset(4, "BC004"));
Assets.Add(new Asset(5, "BC005"));
}
public void Update(GridCommandEventArgs args)
{
Asset a = (Asset)args.Item;
Asset? asst = Assets.FirstOrDefault(x => x.AssetId == a.AssetId);
if(asst != null)
{
asst.BarCode = a.BarCode;
asst.UserId = a.UserId;
}
StateHasChanged();
}
public class Asset
{
public Asset()
{
}
public Asset(int assetId, string barcode)
{
AssetId = assetId;
BarCode = barcode;
}
public int AssetId{ get; set; }
public string BarCode { get; set; } = string.Empty;
public int? UserId{ get; set; }
}
public class Person
{
public Person(int id, string fName, string lName)
{
Id = id;
FirstName = fName;
LastName = lName;
}
public int Id{ get; set; }
public string FirstName { get; set; } = string.Empty;
public string LastName { get; set; } = string.Empty;
public string LastFirst
{
get
{
return LastName + ", " + FirstName;
}
}
public string FullName
{
get
{
return FirstName + " " + LastName;
}
}
}
}
My team is currently using animation containers as menu popups in our web app, which will need to work on both desktop and mobile devices in a web browser. For the mobile layout, I would like to be able to open animation containers via swipe gestures. I understand that animation containers are not strictly menus, however, I would love to see swipe action support in Telerik UI for Blazor, and then be able to bind that action to an animation container.
The only framework I have found by way of example is https://onsen.io/. Please observe how it is possible to open a panel by swiping close to the edge of the sample device on their homepage.
This feature would make it much easier to build dynamic web apps that perform well on desktop and feel native on mobile devices as well.
Thank you,
David
We have a grid with the standard numeric filter menu.
When we copy a numeric value from Excel or from somewhere else and paste it into the field it is not copied.
This also happens with the demo on https://demos.telerik.com/blazor-ui/grid/filter-menu
It does not work since the 3.3.0 version.
Looks like the filter row has the same problem.
Hi I have noticed that if the dropdown for an enum cannot wordwrap the item then the styling is broken, see the following the screenshot:
As you can see IN_PROGRESS is so long that it exceeds the column width and creates empty space above.
To me it appears as though an attempt to try to wordwrap the IN_PROGRESS but IN_PROGRESS has no applicable breaks in it.
Thanks,
Daniel
In the example below, the home icon is displayed correctly but the two with underscores are not. Moving the span outside the drawer does display correctly.
<TelerikRootComponent>
<TelerikDrawer Data="@NavigablePages"
@bind-Expanded="@DrawerExpanded"
MiniMode="true"
Mode="@DrawerMode.Push"
@ref="@DrawerRef"
@bind-SelectedItem="@SelectedItem">
<Template>
<div class="k-drawer-items">
<ul>
<li class="k-drawer-item" style="white-space:nowrap">
<span class="k-icon material-icons" style="margin-right: 8px;">home</span>
@if (DrawerExpanded)
{
<span class="k-item-text">Home</span>
}
</li>
<li class="k-drawer-item" style="white-space:nowrap">
<span class="k-icon material-icons" style="margin-right: 8px;">shopping_cart</span>
@if (DrawerExpanded)
{
<span class="k-item-text">Shopping Cart</span>
}
</li>
<li class="k-drawer-item" style="white-space:nowrap">
<span class="k-icon material-icons" style="margin-right: 8px;">content_paste_search</span>
@if (DrawerExpanded)
{
<span class="k-item-text">Clipboard</span>
}
</li>
</ul>
</div>
</Template>
<DrawerContent>
<div class="content px-4">
@Body
</div>
</div>
</DrawerContent>
</TelerikDrawer>
</TelerikRootComponent>