In order to be able to easily work on mobile (tablet) and desktop browsers using touch it would be great if tree view supported multi select through a single click to select and click to unselect option without the need to hold down the ctrl key or anything like that
This can be worked around currently implementing a TreeView template and then the OnClick event to allow custom tracking of selected and unselected items but this feels like a common enough requirement for touch support that it would be great to support out of the box with the control
In https://docs.telerik.com/blazor-ui/components/grid/manual-operations?_ga=2.192647914.1753502014.1641929648-330381368.1614276734
in the code section of Get Information From the DataSourceRequest you are using a @function instead of an @code. Still works, but so 2019.
The second issue, typo in https://github.com/telerik/blazor-ui/tree/master/grid/datasourcerequest-on-server readme, DataSourceRequet should be DataSourceRequest
Is it possible to add to the carousel a thumbnail scrollable navigation below the "page/image"? I'm thinking this would be a nice addition, which would allow independent scrolling from that of the current page and also be clickable in the same way that the dots are in order to jump to the selected page.
----------ADMIN EDIT----------
The knowledge base article is now live - "Carousel Thumbnail Scrollable Navigation".
Thanks,
James
After the upgrade to 3.0 the auto size feature of TextArea when used inside the Window component no longer works.
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;
}
}
}
}