Current configuration: server-side filtering
Desired behavior:
MultiSelect configured for server-filtering="true" sends an empty request on focusout
<kendo-multiselect for="SelectedOrderIds" style="width:100%"
placeholder="Select addresses..."
datatextfield="ShipName"
datavaluefield="OrderID"
filter="FilterType.Contains"
value="Model.SelectedOrders.Select(x=>x.OrderID)">
<datasource type="DataSourceTagHelperType.Ajax" server-filtering="true">
<transport>
<read url="@Url.Page("Index", "Read")" data="forgeryToken" />
</transport>
<schema data="Data">
<model id="OrderID">
<fields>
<field name="ShipName" type="string"></field>
</fields>
</model>
</schema>
</datasource>
</kendo-multiselect>
An empty request is sent, fetching all data.
A request should not be sent.
In this screenshot, End Date and Subm Is Open are "nested" properties, and Prod Date and Is LatestVersion are *not* nested. The row filter functionality is not displaying the correct row filter widget.
Here's a data sample:
{
"SubmissionVersionId": 1020,
"ReleaseId": 2008,
"SubmissionVersionNumber": 6,
"IsLatestVersion": true,
"SetId": "E2410-1f",
"EioSubmissionId": null,
"SubmissionName": null,
"RequestDate": null,
"SubmissionDate": null,
"WitsDate": null,
"ProdDate": null,
"OnHoldReason": null,
"IsSubmitted": true,
"Created": "2024-12-20T14:39:51-08:00",
"RowVersion": "AAAAAAAAn28=",
"Release": {
"ReleaseId": 2008,
"UnversionedSetId": "E2410-1",
"StatusId": 1,
"ReleaseTypeId": 1,
"ReleasePriorityId": 3,
"EncDate": "2025-01-08",
"KphcSuite": null,
"SnowReq": null,
"SnowRitm": null,
"Created": "2024-12-17T11:20:02-08:00",
"ReleasePriority": {
"ReleasePriorityId": 3,
"ReleasePriorityName": "Routine",
"ReleasePriorityAbbreviation": "ROU"
},
"ReleaseType": {
"ReleaseTypeId": 1,
"ReleaseTypeName": "New"
},
"Status": {
"ReleaseStatusId": 1,
"ReleaseStatusName": "In Progress",
"IsOpen": true
}
}
}
Here is the schema definition.
.Schema(s => {
s.Model(model =>
{
model.Id(p => p.SubmissionVersionId);
model.Field(p => p.SubmissionVersionId).Editable(false);
model.Field(p => p.ReleaseId).Editable(false);
model.Field(p => p.SubmissionVersionNumber).Editable(false);
model.Field(p => p.IsLatestVersion).Editable(false);
model.Field(p => p.EioSubmissionId).Editable(false);
model.Field(p => p.SubmissionName);
model.Field(nameof(SubmissionVersion.RequestDate), typeof(DateOnly)).DefaultValue(null);
model.Field(nameof(SubmissionVersion.SubmissionDate), typeof(DateOnly)).DefaultValue(null);
model.Field(nameof(SubmissionVersion.WitsDate), typeof(DateOnly)).DefaultValue(null);
model.Field(nameof(SubmissionVersion.ProdDate), typeof(DateOnly)).DefaultValue(null);
model.Field(nameof(SubmissionVersion.IsSubmitted), typeof(bool)).DefaultValue(false);
// Release fields
model.Field(nameof(Release.UnversionedSetId), typeof(string)).Editable(false);
model.Field(nameof(Release.EncDate), typeof(DateOnly));
model.Field(nameof(Release.SnowReq), typeof(string));
model.Field(nameof(Release.KphcSuite), typeof(string));
model.Field(nameof(Release.SnowRitm), typeof(string));
// ReleaseStatus fields
model.Field(nameof(ReleaseStatus.IsOpen), typeof(bool)).Editable(false);
});
})
I've attached the full cshtml file.
When ParseFormats is set in the DatePicker editor used in the Grid popup, the picker does not show the field value to which it is bound.
public DateOnly? OrderDate { get; set; }
.Model(model =>
{
model.Id(p => p.OrderID);
model.Field(p => p.OrderDate).DefaultValue(new DateOnly());
})
@model DateOnly?
@(Html.Kendo().DatePickerFor(m => m).ParseFormats(new string[] { "MM/dd/yyyy" }).HtmlAttributes(new { title = Html.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName("") }))
When editing a record. The value of the OrderDate field is not displayed in the DatePicker.
If you remove the ParseFormats option from the DatePicker, it shows the value as expected.
The field value should be displayed in the picker, even when ParseFormats is set.
The column format applied through the .Format() option is ignored, if the column is bound to a nullable DateOnly field.
public DateOnly? PaymentDate { get; set; }
columns.Bound(p => p.PaymentDate).Title("Date").Format("{0:MM/dd/yyyy}").Width(160);
The specified format is ignored, e.g., the Grid shows 2025-01-21, instead of 01/21/2025
The specified column format is applied.
### Bug report
When deferring the component scripts to a file and a specified item of a Form HtmlHelper has a defined editor through the Editor() configuration, a client-side error is thrown:
"Uncaught Error: Syntax error, unrecognized expression: #"
### Reproduction of the problem
1) Enable the global deferred initialization.
2) Define a Form HtmlHelper with a ComboBox editor for one of its items:
@model FormViewModel
@(Html.Kendo().Form<FormViewModel>()
.Name("form")
.HtmlAttributes(new { action = @Url.Action("SubmitData", "Home"), method = "POST" })
.FormData(Model)
.Items(items =>
{
items.Add()
.Field(f => f.Username)
.Label(l => l.Text("Username:"));
items.Add()
.Field(f => f.City)
.Label(l => l.Text("City"))
.Editor(editor => editor
.ComboBox()
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>()
{
new SelectListItem() { Text = "City A", Value = "1" },
new SelectListItem() { Text = "City B", Value = "2" },
new SelectListItem() { Text = "City C", Value = "3" }
})
);
})
)
@(Html.Kendo().DeferredScriptFile())
3) When the page with the Form is loaded, open the browser console and examine the error. Review the content of the loaded kendo-deferred-scripts-xxxxx.js file - the ComboBox initialization script is included after the Form initialization script. Attached you can find screenshots.
When using the TagHelper version of the Form, the ComboBox initialization script is included in the kendo-deferred-scripts-xxxxx.js file before the initialization script of the Form with a unique generated "id" for example "3451ce77-2736-437f-9584-f5a5255902c2". In this case, no client-side errors occur.
### Expected/desired behavior
When deferring the component scripts to a file, the Form with specified editors must be initialized as expected without client-side errors.
### Workaround
Use the TagHelper version of the Form or define the editor by using the EditorTemplateView() option:
items.Add()
.Field(f => f.City)
.Label(l => l.Text("City"))
.EditorTemplateView(Html.Partial("ComboEditor"));
// ~/Views/Shared/ComboEditor.cshtml
@model FormViewModel
@(Html.Kendo().ComboBoxFor(m => m.City)
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>() {
new SelectListItem() { Text = "City A", Value = "1" },
new SelectListItem() { Text = "City B", Value = "2" },
new SelectListItem() { Text = "City C", Value = "3" }
})
)
### Environment
* **Telerik UI for ASP.NET Core version: 2024.4.1112
* **Browser: [ all ]
The current demo is showing a contains predicate. To enhance the current application, I am requesting the feature to use a starts with predicate to meet a practical business need.
The minimum length property will need to changed to 1 to limit the number of characters to be typed.
It would be nice to extend dialog like office 365 right dialog ( docked to the right).
It would be nice to have a dropdown button with a container
When a Grid's row is reordered and then the changes are saved - a Destroy request is sent to the server for the dataItem of the reordered row. This happens even though no changes are applied to dataItem of the reordered row.
The Grid should request the reordered item to be perished from the backend.
### Bug report
When the Grid is initialized in a hidden container (for example, in a non-selected tab of a TabStrip) and its initial data binding is disabled (autoBind: false), the pager information is not visible when the data is loaded afterward.
### Reproduction of the problem
1. Initialize a Grid into a non-selected tab of a TabStrip and set its autoBind option to "false".
2. Select the tab and check how the empty Grid is rendered.
3. Call the read() method of the Grid's DataSource in the browser console to request the data.
4. The data is loaded, but the pager information remains hidden.
A Dojo sample for reproduction: https://dojo.telerik.com/njVgBvza
### Expected/desired behavior
The pager information must be available when the data is loaded into the Grid.
### Environment
* **Kendo UI version: 2024.4.1112
* **jQuery version: 3.7.1
* **Browser: [all]
Dynamic Grid produces a RunTimeException when the Filterable() configuration is enabled
System.ArgumentNullException: Value cannot be null.
Example
@model System.Data.DataTable
@(Html.Kendo().Grid<dynamic>()
.Name("gridItem")
.Columns(columns =>
{
foreach (System.Data.DataColumn dcolumn in Model.Columns)
{
columns.Bound(dcolumn.ColumnName).Title(dcolumn.Caption);
}
})
...
.Filterable()
)
The aforementioned declaration will work in the previous 2024.3.1015 version of the suite.
The Grid makes the application throw a runtime error.
The Grid makes the application should not throw a runtime error.
Expose the sorts TagHelper for the Grid's column filter datasource taghelper
Currently, the Grid's Column Filter Datasource Taghelper exposes the following inner child TagHelpers.
Unlike its HtmlHelper counterpart which happens to expose the .Sort()
API configuration. For example:
.Columns(columns =>
{
columns.Bound(p => p.ShipName).Filterable(ftb =>
{
ftb.Multi(true);
ftb.Search(true);
ftb.CheckAll(true);
ftb.DataSource(dataSource => dataSource
.Custom()
...
.Sort(sort =>
{
sort.Add("ShipName").Ascending();
})
);
});
})
Hi Team,
I would like to request that, when using endless scrolling for the ListView, to include a page indicator to let the user know what page their on when scrolling.
Thank you!
This just seems like a minor oversight since the Enable(bool) method exists on the DatePicker html helper and other Kendo taghelpers support the enable or enabled attribute, but there doesn't seem to be an enable-like attribute for the kendo-datepicker. Thanks!
<kendo-datepicker for="ReadOnlyDate" enable="false"></kendo-datepicker>
The Start Event of a Sortable component is mapping to the "handler" configuration instead of the proper "start" event
REPL: https://netcorerepl.telerik.com/wIYLYnld333JlP3t08
The Start Event is mapped to the "handler" configuration
The Start Event to be mapped to the proper "start" event
TicketID: 1673355
Currently file manager supports multiple selection by using ctrl and shift keys. However it will be a nice feature if the selection of multiple files available through checkboxs, for e.g. when hovering the item, a checkbox appears in top left corner, and user can select it or unselect it.
In the example below products is actually DbSet<Product>
public async Task<ActionResult> Products_Read([DataSourceRequest]DataSourceRequest request)
{
using (var northwind = new SampleEntities())
{
IQueryable<Product> products = northwind.Products;
DataSourceResult result = await products.ToDataSourceResultAsync(request);
return Json(result);
}
}
Under the hood the ToDataSourceResultAsync call is executed inside Task.Run
And that Task.Run is calling sync methods of IQueryable which means EntityframeworkCore queries are not taking place with async I/O
The Pickers are not bound to model value when a nullable DateTime is set.
public class MyModel
{
public DateTime? Birthday { get; set; }
}
@(Html.Kendo().TimePickerFor(m => m.Birthday))
The Pickers are not bound to model value when nullable.
The Pickers are not bound to model value when a nullable DateTime is set.
Kendo UI version: 2024.4.1112
jQuery version: x.y
Browser: [all]