I have a grid on my page, as follows:
@(Html.Kendo().Grid(@Model.AllChoices)
.Name("choicesGrid")
.Columns(columns =>
{
columns.Select().Width(50);
columns.Bound(c => c.Name);
})
.Pageable(pageable =>
{
pageable
.Input(true)
.Numeric(false)
.PageSizes(true)
.PreviousNext(true);
})
.PersistSelection()
.Sortable()
)
When I select rows and then go to a different page of results and then return back to the previous page, my selections are all cleared. I have the PersistSelection option turned on for the grid.
I have a grid on my page where Model.AllChoices is an IEnumerable of POCOs.
Any help in resolving this issue is greatly appreciated.
Thanks
Hi,
The Telerik ASP.NET Core Grid custom validation example (https://demos.telerik.com/aspnet-core/grid/editing-custom-validation) defines a custom validation rule via the CustomValidationProductViewModel model and the productnamevalidation function.
However, the CustomValidationProductViewModel is not visible on the page. Could you please make the model available?
Kind regards
Hi there,
i am using a ForeignKeyEditor in the Grid like this
GridForeignKey.cshtml:
@model object
@(
Html.Kendo().DropDownListFor(m => m)
.Filter(FilterType.Contains)
.BindTo((SelectList)ViewData[ViewData.TemplateInfo.GetFullHtmlFieldName("") + "_Data"])
)
This works however filtering is not working as expected.
If I use the above code the column displays *all* values and not the distinct values that are actually used.
Checking the documentation it states:
By default, the Grid internally matches the values collection in the column with the corresponding value field from the dataItem and creates a collection with the unique values for the filtering of the foreignKey column.
So why is this not working with the above code?
Hi
I'm not sure what am I doing wrong but I'm using Custom Datasoure (API) and adding an authorization header to the request made by the DataSource. Everything works fine but the problem is when the grid is empty I can't add a new row. I was advised to set Autobind(false) from this thread... if I set it to true add new row works fine but I get an Error 401 onload
@(Html.Kendo().Grid<
Models.IdentityView
>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(p => p.identityType).ClientTemplate("#=identityType.typename#").Width(120);
columns.Bound(p => p.number).Width(120);
columns.Command(command => { command.Destroy(); command.Edit(); }).Width(100);
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable()
.Navigatable()
.ColumnMenu()
.AutoBind(false)
.Sortable()
.Scrollable(scr => scr.Height(800))
.Reorderable(reorderable => reorderable.Columns(true))
.DataSource(dataSource => dataSource
.Custom()
.PageSize(20)
.Events(events => events
.Sync("sync_handler"))
.Schema(schema => schema.Model(m =>
{
m.Id(p => p.identityid);
m.Field(p => p.identityType).DefaultValue(ViewData["defaultType"] as AdorReactUI.Models.TypeView);
}))
.Transport(transport =>
{
transport.Read(read =>
read.Url("/api/Identity/GetIdentityDetails)
.DataType("json")
.Type(HttpVerbs.Get) );
transport.Create(create =>
create.Url("/api/Identity/post")
.DataType("json")
.Type(HttpVerbs.Post)
.ContentType("application/json; charset=utf-8") );
transport.ParameterMap("parameterMap");
})
)
)
For Passing a Token
$(function () {
var grid = $("#grid").data("kendoGrid");
grid.dataSource.transport.options.read.beforeSend = Token;
grid.dataSource.transport.options.create.beforeSend = Token;
grid.dataSource.transport.options.update.beforeSend = Token;
grid.dataSource.transport.options.destroy.beforeSend = Token;
grid.dataSource.read(); // make a DataSource read, which will now use the authorization header
function Token(xhr) {
xhr.setRequestHeader('Authorization', "my token");
}
});
I have a Kendo grid that has 15 editable columns and I am currently using inline editing. I also have a comments column that is only required if one of the other columns has changed its value. How do I manage that with custom validation?
In the example below, I am able to click into the row to begin editing. However I only require the Comments field to be required if ColA,ColB,ColC are edited.I can see that the row has been changed by tying into the hasChanges of the dataSource on the grid, but how do I force the required attribute to be applied to the Comments field?
ColA ColB ColC Comment
0 0 0
var grid = $('#grid').data('kendoGrid');
var selectedRow = grid.dataItem('tr.k-grid-edit-row');
if (grid.dataSource.hasChanges()) {
debugger;
alert("there are changes");
}
Hello,
I'm trying to use localization for Grid and it's seem working only for DatePicker.
I use this in _layout and see attachment
<!DOCTYPE html>
<
html
>
<
head
>
<
meta
charset
=
"utf-8"
/>
<
meta
name
=
"viewport"
content
=
"width=device-width, initial-scale=1.0"
/>
<
environment
include
=
"Development"
>
<!-- Lato font from Google webfonts -->
<
link
href
=
"https://fonts.googleapis.com/css?family=Lato:400,900,700,400italic"
rel
=
"stylesheet"
>
<
link
href
=
"https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"
rel
=
"stylesheet"
integrity
=
"sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN"
crossorigin
=
"anonymous"
>
<
link
href
=
"https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css"
rel
=
"stylesheet"
>
<
link
href
=
"~/dist/css/charming-pro-green.css"
rel
=
"stylesheet"
/>
<!-- Ajout pour Kendo ui -->
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2018.2.620/styles/kendo.common-material.min.css"
/>
<
link
rel
=
"stylesheet"
href
=
"https://kendo.cdn.telerik.com/2018.2.620/styles/kendo.material.min.css"
/>
</
environment
>
<
environment
exclude
=
"Development"
>
<
link
rel
=
"stylesheet"
href
=
"https://stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css"
asp-fallback-href
=
"~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class
=
"sr-only"
asp-fallback-test-property
=
"position"
asp-fallback-test-value
=
"absolute"
/>
<
link
rel
=
"stylesheet"
href
=
"~/css/site.min.css"
asp-append-version
=
"true"
/>
<!-- Ajout pour Kendo ui -->
<
link
rel
=
"stylesheet"
asp-fallback-href
=
"~/lib/kendo-ui/styles/kendo.common-nova.min.css"
asp-fallback-test-class
=
"k-common-test-class"
asp-fallback-test-property
=
"opacity"
asp-fallback-test-value
=
"0"
/>
<
link
rel
=
"stylesheet"
asp-fallback-href
=
"~/lib/kendo-ui/styles/kendo.nova.min.css"
asp-fallback-test-class
=
"k-theme-test-class"
asp-fallback-test-property
=
"opacity"
asp-fallback-test-value
=
"0"
/>
</
environment
>
</
head
>
<
body
class
=
"bg-accent-2"
>
<
environment
include
=
"Development"
>
<
script
src
=
"https://ajax.aspnetcdn.com/ajax/jquery/jquery-3.3.1.min.js"
crossorigin
=
"anonymous"
integrity
=
"sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT"
></
script
>
<
script
src
=
"https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"
integrity
=
"sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"
crossorigin
=
"anonymous"
></
script
>
<
script
src
=
"https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"
integrity
=
"sha384-smHYKdLADwkXOn1EmN1qk/HfnUcbVRZyYmZ4qpPea6sjB/pTJ0euyQp0Mk8ck+5T"
crossorigin
=
"anonymous"
></
script
>
<
script
src
=
"~/dist/js/charming-pro.min.js"
></
script
>
<
script
src
=
"~/js/site.js"
asp-append-version
=
"true"
></
script
>
@* Place Kendo UI scripts after jQuery *@
<
script
src
=
"~/lib/kendo-ui/js/kendo.all.min.js"
></
script
>
<
script
src
=
"~/lib/kendo-ui/js/kendo.aspnetmvc.min.js"
></
script
>
<
script
src
=
"~/lib/kendo-ui/js/cultures/kendo.culture.en-CA.min.js"
></
script
>
</
environment
>
<
environment
exclude
=
"Development"
>
asp-fallback-src
=
"~/lib/jquery/dist/jquery.min.js"
asp-fallback-test
=
"window.jQuery"
crossorigin
=
"anonymous"
integrity
=
"sha384-tsQFqpEReu7ZLhBV2VZlAu7zcOV+rXbYlF2cqB8txI/8aZajjp4Bqd+V6D5IgvKT"
>
</
script
>
asp-fallback-src
=
"~/lib/bootstrap/dist/js/bootstrap.min.js"
asp-fallback-test
=
"window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
crossorigin
=
"anonymous"
integrity
=
"sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa"
>
</
script
>
<
script
src
=
"~/js/site.min.js"
asp-append-version
=
"true"
></
script
>
</
environment
>
@RenderBody()
<
partial
name
=
"_CookieConsentPartial"
/>
@RenderSection("Scripts", required: false)
</
body
>
</
html
>
<
script
type
=
"text/javascript"
>
kendo.culture("en-CA");
</
script
>
I need to send multiple parameters to the read method of a grid. I have grouped the parameters inside of a class since I have used this with success in the past.
However in the telerik context in does not work
Read([DataSourceRequest]DataSourceRequest request, MyFilter filter) I always get filter with its properties null
Read([DataSourceRequest]DataSourceRequest request, string Prop1, string Prop2) it works the properties have the correct values
Does this not work because of the DataSourceRequestAttribute? Do I have to define also an Attribute to retrieve my properties?
Hi I'm enumerating though a model and want to pass the current data n to a Window when edit is clicked.
@foreach (var n in Model) {
<
tr
>
<
td
class
=
"grb-fa-center"
>
<
i
class
=
"far fa-edit fa-lg"
title
=
"Edit"
onclick
=
'$("#window").data("kendoWindow").open();'
></
i
>
</
td
>
</
tr
>
<
div
id
=
"example"
>
@(Html.Kendo().Window()
.Name("window")
.Title("My Editor")
.Content(@<
text
>@Html.Partial("MyEditor\\Index", n)</
text
>)
.Visible(false) .Width(400)
)
</
div
>
How can I pass n to my window?
Thanks,
Ricky
I have searched the internet to see if this issue is solvable in another context but can find nothing.
The issue I have is that the Grid markup never stays where you put it horizontally. So you can bring it back all the way to the left in the template and the next time you open it everything but the first line of the grid markup is indented like 3 inches.
Is anyone else experiencing this? I am using VS 2017 professional.
Hi,
I was just wondering how to call an javascript function or controller action from a custom toolbar button on the grid. I notice that there's no .Action() or .Url(), ext attributes in the core html helpers.
Thanks in advance!