Telerik Forums
UI for ASP.NET Core Forum
3 answers
1.1K+ views

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

 

Konstantin Dikov
Telerik team
 answered on 24 Jul 2018
1 answer
465 views

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

Viktor Tachev
Telerik team
 answered on 20 Jul 2018
4 answers
340 views

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?

 

Hannes
Top achievements
Rank 1
 answered on 20 Jul 2018
1 answer
606 views
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");
    }
});
Tsvetina
Telerik team
 answered on 20 Jul 2018
4 answers
1.5K+ views

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");
                    }

Eyup
Telerik team
 answered on 19 Jul 2018
1 answer
157 views

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="~/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.material.min.css" />
 
 
    </environment>
    <environment exclude="Development">
              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>
Rumen
Telerik team
 answered on 18 Jul 2018
5 answers
419 views

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?

 

Viktor Tachev
Telerik team
 answered on 18 Jul 2018
3 answers
1.7K+ views

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

Ricky
Top achievements
Rank 1
 answered on 17 Jul 2018
6 answers
83 views

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.

Reid
Top achievements
Rank 2
 answered on 17 Jul 2018
2 answers
1.1K+ views

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!

Catherine
Top achievements
Rank 1
 answered on 17 Jul 2018
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?