Hello,
I would love to see an auto sizing for a TileLayoutItem. Specifically, in my case, the RowSpan. I feel like this would make a great addition as a parameter in the future as (also AutoSizeColumn would be nice)
<TileLayoutItem AutoSizeRow="true"></TileLayoutItem>
I am working on an application that has dynamic data displayed within the TileLayoutItem. In my current implementation, I'm going through a process of attempting to calculate for resizing the RowSpan. The calculations are based on an inner body div that holds an id, finds the parent k-tilelayout-item and then the the k-tilelayout itself. I can't positively say my math is perfect but it (mostly) gets the job done. Keeping in mind that I have created other altered other areas of the TileLayout as well, specifically setting the TelerikTileLayout grid to autofit.
For an idea of what I am currently doing as a means of possibly finding a (better) way to implement this in the future, this is the long ugly javascript code I have that is used to gather a minimum size and return it to blazor via JsInterop.
function (tileId, minSpanSize = 4) {
try {
var el = document.getElementById(tileId);
var tileLayout = $(el).closest(".k-tilelayout")[0];
var parentTile = $(el).closest(".k-tilelayout-item")[0];
var headerHeight = $(el).parent().siblings(".k-tilelayout-item-header")[0].offsetHeight;
var parentSpan = parseInt(parentTile.style.gridRowEnd.split("span ")[1]);
var gap = parseInt(tileLayout.style.gap.replace("px", ""));
var rowHeight = parseInt(tileLayout.style.gridAutoRows.split(",")[1].split("px")[0]);
// cannot recall where I got 1.25 from
var minSize = Math.ceil((headerHeight + el.offsetHeight) / ((gap / 1.25) + rowHeight));
// if parent is less than minsize
if (parentSpan < minSize) {
parentTile.style.gridRowEnd = "span " + minSize;
return { id: tileId, minSize: minSize };
// Otherwise, if min size is greater than or equal to minSpanSie
} else if (minSize >= minSpanSize) {
parentTile.style.gridRowEnd = "span " + minSize;
return { id: tileId, minSize: minSize };
}
} catch { }
return { id: tileId, minSize: -1 };
When a column is filtered, I'd like a better visual indicator of that fact.
The solid background to the menu button is not appealing, and it is applied whether a column is sorted or filtered.
The only full-featured Blazor DataGrid | Telerik UI for Blazor
I'd like a distinct indication of whether a column is filtered -- perhaps a filter icon next to the header text similar to how you might see an arrow when sorted.
---
I've attempted to create this myself using OnStateChangedHandler to iterate through the columns and call a Javascript function that finds the right column header and appends a filter icon. It kind of works sometimes, but I'm not sure I'll able to get it working consistently. Even so, it feel like a fragile hack that will probably break in a future update.
Ideally this would be an added feature, but in the meantime is there a way I can accomplish this myself?
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>
Hi,
I had to figure this out myself for the ComboBoxSettings because there is no documentation for this.
The MinWidth works from the Combobox width or greater extending the size of the popup and
MaxWidth only creates a popup width of the Combobox only.
Please document this feature and how to use it. And, is this intentional because it wasn't intuitive for me to figure out.
I created a REPL for you to test this out for yourself.
If you are in edit mode using InCell, clicking somewhere else inside or outside the Grid should fire OnUpdate if the item is valid. However, if you click on some customly added element in the Grid (e.g. button, icon, dropdown) this will not fire OnUpdate for a valid item.
In Incell edit, clicking anywhere besides the edited cell should fire OnUpdate for a valid input.
---
ADMIN EDIT
---
A possible workaround for the time being - in the OnClick handler of the custom element get the edited item from the Grid State. Update the item and programmatically close the edit mode.
For example: https://blazorrepl.telerik.com/ccuMGovv08NIX6u544.
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
This feature is requesting a Blazor version of the RadPropertyGrid, or a more modern Material Design(ish) equivalent.
https://docs.telerik.com/devtools/wpf/controls/radpropertygrid/overview
As more customers are adopting Blazor, we're porting our rich design time tooling to the web in SaaS type offers. No Blazor control vendor has this type of control today, and it's sorely needed. Even finding a Web/Angular version of this type of control is practically impossible.
Having this control combined with the existing Telerik Blazor property editors (combo boxes, edit fields, boolean controls, color pickers, font pickers, etc.) would give you a strong leg up on your competitors.
Note: Our company is already licensing your Blazor controls and I speak to Maria every few months on the roadmap.
Hello everyone,
at the moment the TooltipTemplateContext isn't very useful and hard to work with:
Problem: As you can see, "start" and "end" only contains a weired pre-build string.
As a developer I can't parse this (at least the year is missing), so I'd like to suggest, that you replace the Dictionary of <string,string> with an <string,object> and add the start and end as DateTime.
An alternative would be to pass a custom parameter or have the task item accessable directly.
In our use-case we have no need for the time (it's a gantt not a time table!) and the tasks won't end at the end of the year.
Regards
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.
Create a general purpose component to allow dragging and dropping of other components or files from the filesystem. Expose events that let us get access to the files that were dropped so that we can access the contents of those files or send them off to be uploaded.
Currently in Blazor we can do this with the InputFile component. But I would like the ability to create a droppable UI and have any kind of child content in it. And also get at the file content of files dropped.
QueryableExtensions.ToDataSourceResult throws IndexOutOfRangeException if a DataTable contains deleted rows.
using System.Data;
using Telerik.DataSource;
using Telerik.DataSource.Extensions;
var dt = GetData();
var res = dt.ToDataSourceResult(new DataSourceRequest());
DataTable GetData()
{
DataTable table = new DataTable();
// Make sure you specify the correct types
// If you have any nulls in your (database) Column, you should use nullable type (int?, DateTime?,...)
table.Columns.Add("ProductId", typeof(int));
table.Columns.Add("ProductName", typeof(string));
table.Columns.Add("UnitPrice", typeof(decimal));
table.Columns.Add("UnitsInStock", typeof(short));
// You should set default values to the columns that could be skipped in Create/Edit.
// The alternative approach is to set the default values in the UpdateHandler and/or CreateHandler.
// Having a default value in this case will prevent having DBNull values in your DataTable, because
// DBNull is not parsable to any other primitive type and if you pass it to the grid, some of the operations could be broken
table.Columns["ProductName"].DefaultValue = default(string);
table.Columns["UnitPrice"].DefaultValue = default(decimal);
table.Columns["UnitsInStock"].DefaultValue = default(short);
for (int i = 1; i < 50; i++)
{
table.Rows.Add(i, $"Product{i}", i * 5.2, i * 2);
}
table.AcceptChanges();
var lastRow = table.Rows[table.Rows.Count - 1];
lastRow.Delete();
return table;
}
Have been pouring through all your release videos, (Great Job Sam, Ed Et Al...) to be better informed as to what project type to select for a new Enterprise Admin App. The FilterView control stood out as a means of potentially saving me more than a week of work, but I just can't see making a new forms app going forward. Blazor and Maui seem like the only logical choices going forward, please add if convenient...
Thanks.
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.