Normally, when we develop we try to give a homogeneous behavior to our applications for the user.
This is a uncomfortable when the default behavior of our application does not match those of the Telerik controls because it becomes verbose and repetitive. I look at my code and constantly repeat configurations for the different controls.
For example, in 99% times I use:
<TelerikGrid EditMode="GridEditMode.Inline" />
or
<GridColumn ShowFilterCellButtons="false" TextAlign="ColumnTextAlign.Center" />{
"TelerikGrid.EditMode": "GridEditMode.Inline",
"GridColumn.ShowFilterCellButtons": false,
"GridColumn.TextAlign": "ColumnTextAlign.Center"
}<GridCommandColumn Width="90px">
<div class="text-center">
<GridCommandButton Command="Edit" Icon="@SvgIcon.Pencil" />
<GridCommandButton Command="Delete" Icon="@SvgIcon.Trash" />
<GridCommandButton Command="Save" Icon="@SvgIcon.Save" ShowInEdit="true" />
<GridCommandButton Command="Cancel" Icon="@SvgIcon.Cancel" ShowInEdit="true" />
</div>
</GridCommandColumn>Changing "Delete" icon in the whole application seems trivial, but think that you could modify the default behavior homogeneously in the whole application or in part of it if the configuration file had a hierarchical behavior, changing one properpty in one place.
I think it would be a very useful functionality to give homogeneity to an application in a very effective way, without breaking changes and making a less verbose and repetitive code.
Thank you for reading me !
Right now, when calling the ToDataSourceResult extension method on IQueryable object, the DB is queried using the given filters for example from a DataSourceRequest object. However, if I want to apply complex queries based on those filters, this is not possible unless rewriting the existing extension method to return an IQueryable.
Proposal Example API
var dataSourceRequest = new DataSourceRequest();
DataSourceResultWithQuery dataSourceResultWithQuery = query.ToDataSourceResultWithQuery(dataSourceRequest);
public class DataSourceResultWithQuery : DataSourceResult
{
[JsonIgnore]
public IQueryable query { get; set; }
}
Is it possible for this to be added as an extension method? I am currently doing this using a custom class that parses the dataSourceRequest class and returning the IQueryable, but it would be nice if this was an included extension method.
Thank you.
Hi Team,
I was implemeting the approach mentioned in the below URL in my Blazor .Net Project
https://github.com/telerik/blazor-ui/tree/master/common/pdf-jpg-export-js
But getting this error while execution, can someone please look into this or help me.
In TreeView the selected and checked items have to be provided as IEnumerable<object>. This can make things a bit of a pain if you have for example outside events that are also trying to change the list of checked items. Not insurmountable or hard but just a pain.
For example to remove an item since IEnumerable is immutable you to have to completely re-assign the collection. SelectedItems = SelectedItems.Where[Some condition] . Instead of SelectedItems.Remove, add etc.
I realize the reasons you are binding to IEnumerable<object> and not using generics
I propose adding "CheckedField" and "SelectedField" in your observable treeview binding and then we would not have to pass in Checked / Selected Items at all and just bind those fields to the Data we are passing in. Make life a lot easier.
The same thing likely applies to some other controls that have the same problem. So keep it consistent.
Hello,
I need to perform some tasks in case of pressing some keyboard shortcuts. For example when a user press Alt+Enter key combination. But it seems that your grid catches this key combination as well and performs its action (Editing the current cell and jumping to the next one below). How can I suppress this behavior please? Maybe not just for this key combination but more generally.
I attached a small sample to better demonstrate the problem. Just run the sample please, focus some cell in the grid and press Alt+Enter.
Very thanks.
Miroslav
If I create a <TelerikGrid> whose Data property is set to a collection of 'object' (actual type not known at compile time, only at runtime), I can create <GridColumn> components for each property through e.g.
@{
IEnumerable<PropertyInfo> props = GetModelType().GetProperties();
foreach (PropertyInfo prop in props)
{
string propName = prop.Name;
<GridColumn Field="@propName" ... />
}
}
@code {
private Type GetModelType()
{
Type modelType = ...; // code determines the type of model at runtime ...
return modelType;
}
}
This works fine if the grid's EditMode is GridEditMode.Popup. When editing a row, the popup dialog properly displays each column header and value and binds correctly.
However, this does not work if the EditMode is GridEditMode.Inline nor GridEditMode.Incell. When placing the row in edit mode, no editor control appears at all, and the value in the cell is displayed as blank.
The design of the grid component thus only works well when given a known type at compile time, or one is constrained to always use Popup edit mode due to this flaw.
In addition to a request to fix this, it would also be great if the grid could be passed a Type (a runtime type, not a class name) to use for generating columns automatically, rather than having to resort to developers having to use reflection to generate grid columns themselves.
For instance,
<TelerikGrid T="@GetModelType()" ...> should invoke the GetModelType() method which would return a type at runtime, not necessarily known at compile time. Currently T can only be set to a hard-coded type name such as "Employee".
Hi,
I see this feature request which is marked as COMPLETED in v2.28 (I`m running v3.7) but I don`t see how to achieve the functionality of having a blank placeholder for a DateTimePicker which has a null datetime variable bound it.
Are you able to help please?
Regards,
Tom
https://docs.telerik.com/blazor-ui/components/grid/paging
Under the section "Bind Page Size to a variable", if you click preview it generates an error.
Peter
Hi!
Would it be possible to expose a focus in/out (or similar) functionality for the Treeview? We currently use the component for eyebrow navigation menus, and it would be nice to have the ability to close trees when the user clicks somewhere else. We've tried doing an onclick for the body of the site, which works but also interferes with other clicks on the page. Thanks!
Hello,
it seems there is a bug related to the subject. Run this REPL please https://blazorrepl.telerik.com/wRFaYnEq276w3dK528 and follow the steps in the attached video.
Very thanks.
Miroslav
https://docs.telerik.com/blazor-ui/knowledge-base/inputs-validation-child-component
Number of typos where "Fied" should be "Field".
1 minute fix, just looks bad. 4x in MyCustomComponent and in MainComponent.
Peter
Hi,
I do not think this is a feature yet I am adding it here, so won't put pressure on developers. The problem is that when I add a TelerikGrid inside a TelerikTabStrip it does not adjust well to changes of browser resizing. I have made different ways, like making the siez 100% or dynamic sizing and changing CSS, but each of them may break something. It would be crucial for us if the grid would change well to changes in TelerikTabStrip when its width property is 100%.
Thank you
Hi,
During grid initialization I have duplicate OnReadMethod call. I dynmaically set LoadGroupsOnDemand parameter. When LoadGroupsOnDemand is false and when I skip the second call (I shouldn't do any extra logic to calculate the call number anyway) it works fine. If LoadGroupsOnDemand is true I have to call it twice. With early ending of first call, second OnRender call won't be done. If I do "return" at the begining of second call it returns me an empty grid.
Similar issue to this one: https://feedback.telerik.com/blazor/1442276-onread-called-twice-on-initialization
Sorry for the long question/request...
I'm running into an exception during a TelerikScheduler Edit event when trying to initialize the model. I believe this is occurring because the models are complex objects with another object as a property inside it, where the "submodel" does not have a parameterless constructor. I'm receiving the following exception while debugging:
I read this ticket that discusses a similar issue as well as this ticket which describes the OnModelInit event that allows you to create an instance of the model to pass to the CUD event. However, after implementing the OnModelInit handler the error is still occurring because it is trying to clone that object before passing it to the edit event and is attempting to use a constructor with no parameters which does not exist.
To reiterate the ticket above, it would be nice if the clone process checks to see if the model implements the ICloneable interface. This will allow custom clone behavior which should resolve this issue. Or is there already a fix/workaround for this?
I added a few simplified code segments below as an example of the issue I'm having... (I'm using Blazor Server if that's relevant)
Index.razor:
@page "/"
@using TelerikBlazorTestApp.Models
<TelerikScheduler Data="@Appointments"
AllowCreate="true" AllowDelete="true" AllowUpdate="true"
OnModelInit="@ModelInitHandler">
<SchedulerViews>
<SchedulerDayView />
<SchedulerWeekView />
<SchedulerMonthView />
</SchedulerViews>
</TelerikScheduler>
@code {
public List<SchedulerAppointment<TestModel>> Appointments { get; set; }
protected override async Task OnInitializedAsync()
{
Appointments = new List<SchedulerAppointment<TestModel>>()
{
new SchedulerAppointment<TestModel> { Title = "Test 1", Start = DateTime.Now, End = DateTime.Now.AddHours(1), IsAllDay = false, Model = new TestModel("blah") },
new SchedulerAppointment<TestModel> { Title = "Test 2", Start = DateTime.Now.AddHours(1), End = DateTime.Now.AddHours(2), IsAllDay = false, Model = new TestModel("blah") },
new SchedulerAppointment<TestModel> { Title = "Test 3", Start = DateTime.Now, End = DateTime.Now, IsAllDay = true, Model = new TestModel("blah") }
};
}
public SchedulerAppointment<TestModel> ModelInitHandler()
{
return new SchedulerAppointment<TestModel>("blah");
}
}SchedulerAppointment.cs:
namespace TelerikBlazorTestApp.Models
{
public class SchedulerAppointment<TItem>
{
public Guid Id { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime Start { get; set; }
public DateTime End { get; set; }
public bool IsAllDay { get; set; }
public string RecurrenceRule { get; set; }
public List<DateTime> RecurrenceExceptions { get; set; }
public Guid? RecurrenceId { get; set; }
public TItem Model { get; set; }
public SchedulerAppointment()
{
Id = Guid.NewGuid();
}
public SchedulerAppointment(string s)
{
Id = Guid.NewGuid();
Model = (TItem)Activator.CreateInstance(typeof(TItem), s);
}
}
}namespace TelerikBlazorTestApp.Models
{
public class TestModel
{
public string PropA { get; set; }
public string PropB { get; set; }
public TestModel(string s)
{
// something using s here
}
}
}Thanks!
Is it possible to allow the adding of aria-label, aria-labelledby, and aria-describedby to the TelerikForm element?
I noticed that aria-labelledby and aria-describedby were added to input elements here: https://feedback.telerik.com/blazor/1531788-allow-setting-aria-labelledby-and-aria-describedby-attributes-to-the-telerik-inputs - so I assume they could be added to TelerikForm too?
Currently, there doesn't seem to be a way to add those attributes, whereas with the default EditForm we can, and so we're unable to leverage the TelerikForm if we want to provide better descriptive information to non-sighted users with a label and description of the form.
Ideally, we should be able to render any HTML element with global attributes: https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes , which would include any of the aria-* tags.
I understand there's a desire to have a locked-down API for components and not allow arbitrary attributes, but I think certain attributes core to accessibility the users of the library should have some ability to manipulate.
Hi,
When I use TelerikDatePicker in my own component and the I use this component in Form, the validation for this input on the UI side doesn't work. The k-invalid class is not added, the appriopriate aria-invalid value is not set. The value on the TelerikDataPicker CascadedEditContext side is ok, an error message for this field appears after validation.
https://docs.telerik.com/blazor-ui/common-features/icons#icon-nuget-packages
When you click "Preview" under Using TelerikFontIcon, the preview is blank, even if I scroll to the top, still nothing.
Hi Support Team,
in our project we are using Telerik Chart and has required to update theme of chart from dark to light and light to dark.
telerik chart in child razor page and dark/light button in mainlayout.razor file but telerik chart updating theme when click on button exist telerik chart razor page. as below link it is an existing issue.
please advice how to resolve the issue.