I have a grid that has first and last name columns. There are people whose last name is 'Null' (a STRING value, NOT the database/JSON value null). The last name cell is blank for these people. Is this a bug or a feature? Is there any way to configure the grid to display the actual value 'Null' instead of blank?
Here's part of the JSON:
{
"FirstName": "John",
"LastName": "Null",
"GradeValue": "2"
},
{
"FirstName": "Jane",
"LastName": "Null",
"GradeValue": "2"
},
As part of a report I have a list of supervisor timeframe data (who supervised between two times). This is certainly not the only data of the report. The whole report is entered and submitted with a single button click.
This supervisor data can be edited in a grid
@Html.LabelFor(m => m.Report.GSupervisors, htmlAttributes: new {@class="form-label"}) @(Html.Kendo().Grid(Model.Report.GSupervisors) .Name("supervisors") .ToolBar(tb => tb.Create()) .Columns(columns => { columns.Bound(p => p.Start).Format("{0:yyyy-MM-dd HH:mm}").Width(240); columns.Bound(p => p.End).Format("{0:yyyy-MM-dd HH:mm}").Width(240); columns.Bound(p => p.Supervisor); }) .Navigatable() .HtmlAttributes(new { @class = "mt-3" }) .Editable(e => e.Enabled(true) .Mode(GridEditMode.InCell) .CreateAt(GridInsertRowPosition.Bottom)) .Selectable(sel => sel.Mode(GridSelectionMode.Single)) )
All three fields are required and Start < End. During editing, the grid correctly creates a red border with an error message if no data is entered in a field when exiting. But still it is possible to have incorrect data (e.g., enter only a Start, but not the other fields). This is caught when the data is submitted and the report is redisplayed with validation errors.
An example of the validation error would have the key Report.GSupervisors[2].Supervisor (see screengrab).
However, the grid does not show what the errors are and which cells contain the errors. I expected the red border around the cells and to see the error message when hovering or entering the cell. This does not happen.
I have found several examples about error handling, but all of them use remote binding. In my case local data binding is used. Also the examples use the OnError event of the datasource to show a popup window, which is really not the way I would like to address this.
How can I achieve the desired error handling?
Hi everyone, I am trying to implement the following functionalities with Grid and Server side filtering/paging:
columns.Bound(p => p.TipoSoggetto).Groupable(false).Filterable(ftb => ftb.UI("tipoSoggettoFilter"));
And the script --> function tipoSoggettoFilter(element) { element.kendoDropDownList({ dataSource: { data: ["NPF", "PF"] } }); }
var operatori = _ctx.Users.OrderBy(u => u.Email).Select(e => new SelectListItem
{
Text = e.NomeOperatore,
Value = e.Id.ToString()
}).ToList();
ops.AddRange(operatori);
ViewData["Operatori"] = new SelectList(ops, "Value", "Text");
ViewBag.Operatori = new SelectList(ops, "Value", "Text");
@(Html.Kendo().Grid<AVR.Models.Output.GetAllAvr>()
.Name("AVRgrid")
//.ToolBar(t => t.Search())
.Columns(columns =>
{
columns.Bound(p => p.DataInserimento).Format("{0:dd/MM/yyyy}").Groupable(false);
columns.Bound(p => p.Subject).Groupable(false).Filterable(ftb => ftb.UI("tipoSoggettoFilter"));
columns.ForeignKey(p => p.UserId, (System.Collections.IEnumerable)ViewData["Operatori"], "Text", "Text")
.Title("Operator").Width(200);
columns.Command(command => command.Custom(" ").IconClass("fa-solid fa-eye").Click("showDetails")).Width(45);
})
.Pageable(p => { p.PageSizes(new[] { 10, 20, 30 }); })
.Sortable()
//.Scrollable()
.Groupable()
.Filterable(ftb => ftb.Mode(GridFilterMode.Row))
.DataSource(dataSource => dataSource
.Ajax()
.Model(model =>
{
model.Field(p => p.UserId).DefaultValue(1);
})
.PageSize(10)
.Read(read => read.Action("GetAllFiltered", "AVR"))
)
)
I have the following bit of configuration on a grid:
<filterable enabled="true" extra="true">
<operators>
<date isnotnull="Is set" isnull="Is not set" lt="Before" gte="On or after" />
</operators>
</filterable>
which results in the filter menu in the attached image. The problem is there is no obvious way for a user to select a single criteria. The And/Or dropdown doesn't have a "Just The Above" option. From looking at what is sent to the server side in the debugger, I found that if the user picks a second condition which requires an argument (such as equal, not equal, before, after, etc.) but doesn't provide the argument then the filter menu logic will only include the top condition. But that's not particularly intuitive to users. And given that the first condition in the list on my date columns (and hence the default) is "Is Not Set", then users would have to explicitly change the bottom condition in order to only have a single condition.
Hello everyone,
I’m trying to use expansion panels in a way that the content is loaded only when the panel is opened. So when the user clicks on a panel, they might see the loading icon and then see the data received from the server. Is it possible to do this?
Thank you
I am looking at using the scheduler control (Restrictions in ASP.NET Core Scheduler Component Demo | Telerik UI for ASP.NET Core)
I see there are various ways to restrict appointments, is there a way to do so where certain dates would not allow appointments? I need to restrict holidays and other specific dates from containing appointments.
Also, is there a way to restrict appointmetns to specific business hours. In the demo it has a button to Show Business Hours but appointments don't seem to be restricted to those hours - I was able to schedule one outside of business hours.
Last, is there a way to note certain dates with a specific background color? I want holidays to be clearly shown so it's easier on the user.
Thanks!
I have a menu component on my view, which gives access to actions that relate to the current record on screen - so in effect I need to have the menu items have URLs similar to the following :
/Controller/Action/{cust_id}/{action_type}
Where {cust_id} will relate to the main record loaded, and {action_type} is rendered from a list within the model of all the available actions. The text for the URLs need to show the action name.
I have tried binding my menu to the Model as per the code below - is there a recommended way to pass in the variable elements, or do I have to abandon the ActionName and ControllerName below, and just construct the whole Url manually? I have put pseudo code in to show what I mean :
@(
Html.Kendo().Menu()
.Name("menu") // The name of the Menu is mandatory. It specifies the "id" attribute of the widget.
.BindTo(Model.TaskTypes, mappings =>
{
mappings.For<CRM.Core.CRM.TaskType>(binding => binding // Define the first level of the Menu.
.ItemDataBound((item, type) => // Define the mapping between the Menu item properties and the model properties.
{
item.Text = type.TaskTypeName;
item.ActionName = "New";
item.ControllerName = "Task";
item.SomePropertyHere = model.CustomerId;
item.SomeOtherPropertyHere = type.TaskTypeId;
}));
})
)
I define my menu using taghelpers. I see that the HTML helpers allow security trimming with the HideParent feature, but it appears that the taghelpers only support a boolean for security trimming and hence no way to enable the HideParent feature. Is that true? Or is there a way to enable it?
Additionally, is there any server-side hook that can be used with the taghelper where I can perform custom filtering after the security trimming has been run but before the menu has been rendered to HTML? This would be a workaround if HideParent is not available, as well as allow for custom filtering such as removing extra menu separators, etc.