Telerik Forums
UI for ASP.NET Core Forum
3 answers
800 views

1. Is it possible to use a model for the grid definition and another model for the Add/Edit template?

My example:

 

01.@(Html.Kendo().Grid<UserDto>()
02.    .Name("usersGrid")
03. .Editable(e => e.Enabled(true)
04.        .Mode(GridEditMode.PopUp)
05.        .TemplateName("EditUser")
06.        .AdditionalViewData(new {ApiUrl = Model.ApiUrl}))
07.        .DataSource(dataSource =>
08.        dataSource
09.            .Ajax()
10.            .ServerOperation(true)
11.            .Model(model =>
12.            {
13.                model.Id(p => p.Id);
14.                model.Field(p => p.Created).Editable(false);
15.            })
16.            .Read(read =>
17.                read.Url(Model.ApiUrl + "/users/get")
18.                    .Type(HttpVerbs.Get)
19.                )
20.            .Create(acc => acc.Url(Model.ApiUrl + "/users/create")
21.                .Type(HttpVerbs.Post)
22.                )
23.            .Update(acc => acc.Url(Model.ApiUrl + "/users/update")
24.                .Type(HttpVerbs.Put)
25.                )
26.            .Destroy(acc => acc.Url(Model.ApiUrl + "/users/delete")
27.                .Type(HttpVerbs.Post)
28.                )

 

 

 

 

EditUser.cshtml:

 

1.@model CreateUserModel
2. 
3.    <input type="hidden" asp-for="Id"/>

 

 

 

The reason I'm asking is that the 2 models have different columns, the grid model has more columns, needed for display. The edit model has columns for edit, metadata for edit.

 

 2. Is it possible to attach and send a parameter to the datasource CRUD actions when the action has Url instead of Action name, Controller Name?

 

1..Update(acc => acc.Url(Model.ApiUrl + "/users/update")
2.                .Type(HttpVerbs.Put)
3.                )
Veselin Tsvetanov
Telerik team
 answered on 08 Nov 2019
1 answer
90 views

     I have a grid that is defined as such:

@(Html.Kendo().Grid<JohnstonePortal.Data.Entities.Announcement>()
                    .ToolBar(tools =>
                    {
                        tools.Create();
                    })
                   .Name("grdAnnouncements")
                   .AutoBind(true)
                   .Events(x=> x.Edit("onEdit"))                       
                    .ToolBar(tools =>
                    {
                        tools.Search();
                    })
                   .Columns(columns =>
                   {
                       columns.Bound(c => c.Text).Width(500).Title("Announcements");
                       columns.Command(command =>
                       {
                           command.Edit();
                           command.Destroy();
                       }).Width(250);
                   })
                 .Editable(editable => editable.Mode(GridEditMode.PopUp).TemplateName("_EditAnnouncement"))
                .DataSource(dataSource => dataSource
                .Ajax()
                .Model(model=>
                {
                model.Id(ann => ann.Id);
                })
                .Read(read => read.Action("AnnouncementsRead", "Announcements"))
                .Create(create => create.Action("AddAnnouncement", "Announcements"))
                .Update(update => update.Action("UpdateAnnouncement", "Announcements"))
                .Destroy(destroy => destroy.Action("DeleteAnnouncement", "Announcements"))
                ))

 

and the controller is defined as:

public IActionResult AddAnnouncement([DataSourceRequest]DataSourceRequest request, Announcement announcement)
     {
         if (ModelState.IsValid)
         {
             _db.Add<Announcement>
                 (new Announcement
                 {
                     DateCreated= DateTime.Now,
                     Text = announcement.Text
                 });            
             _db.SaveChanges();
         }
 
         // Return a collection which contains only the newly created item and any validation errors.
         return Json(new[] { announcement }.ToDataSourceResult(request, ModelState));
     }
 
     public IActionResult UpdateAnnouncement([DataSourceRequest]DataSourceRequest request, Announcement announcement)
     {
         if (ModelState.IsValid)
         {
             var editAnnouncement = _db.Announcements.Single(x => x.Id == announcement.Id);
             editAnnouncement.Text = announcement.Text;
             _db.SaveChanges();
         }
 
         // Return a collection which contains only the updated item and any validation errors.
         return Json(new[] { announcement }.ToDataSourceResult(request, ModelState));
     }

 

The odd thing is, if I update a row when the page loads, it behaves as normal but if I create one and then update another one, It calls the add endpoint first with the original model that was passed the first time to it and then calls the update on the new model that was intended. This obviously results in a duplicate of the first item that was created. I am not sure what I am doing incorrectly here.

Tsvetomir
Telerik team
 answered on 07 Nov 2019
2 answers
61 views

Really liking what I see so far.  Ok, so one of the first things ill need to do on this next project is display 3 different formatted lists, where the items are populated from a list of objects.  See attached screenshot.  Basically, I need to load the first list, which is used to make a selection to populate the 2nd and likewise the 3rd.  Actually the 3rd "list" wont be a list, but a detail grid.  Each step should not refresh the whole page, but just update the next portion, eg. partial page updates.  Hope that is clear.

What sets of components could be used in this approach?

Possibly use a PanelBar for the leftmost list, as well as the 2nd?
https://demos.telerik.com/aspnet-core/panelbar/index

However, for the lists themselves, on a previous project that used the UI for Angular library, I think I simply used Bootstrap listgroups
What library component could replicate this?
https://getbootstrap.com/docs/4.0/components/list-group/

The grid should be straighforward, but should it go in a panel

 

 

 

Martin
Telerik team
 answered on 06 Nov 2019
1 answer
271 views

Hello, 
I checked kendo version 2018.02.620 with Core 2.2 and Core 3.
in the first case, the app works successfully
in the second case, the app does not work.
Have you a plan to release a fix in order apps to work with kendo version 2018.02.620 and Core 3?

Thanks in advance for your answer.

Ivan Danchev
Telerik team
 answered on 06 Nov 2019
1 answer
54 views

No not by me :)

See attached screenshot.  The last few days Ive noticed several posts that are obviously spam promotting various sales gimmicks etc.

 

Rumen
Telerik team
 answered on 05 Nov 2019
1 answer
45 views

I just installed the Telerik UI for ASP.Net Core VS extension and when I start a new project, I get 3 options of the same thing?

 

Vesko
Telerik team
 answered on 05 Nov 2019
2 answers
81 views

how to validate the required field

which i define it the class as Required 

        example 
        [Required]
        public string Title { get; set; }
        [Required]
        public string Description { get; set; }

when i create new Record in grid asp.net Core

then i press Save button directly catch the controller with out any validation 

there is event in the grid 

.Events(e => e.Error("error"))

<script>
    function error(e) {

        console.log(e);
        if (e.errors) {
            var message = "Errors: \n";
            $.each(e.errors, function (key, value) {
                if ('errors' in value) {
                    $.each(value.errors, function () {
                        message += this + "\n";
                    });
                }
            });
            alert(message);
        }
    };

</script>
any help please 

 

 

 

 

 

Alex Hajigeorgieva
Telerik team
 answered on 05 Nov 2019
1 answer
837 views

Hi,
is it possible to generate barcodes on the server side in .NET Core? I need generate a barcode image as base64 string.

Thanks,
MT

Alex Hajigeorgieva
Telerik team
 answered on 01 Nov 2019
4 answers
169 views

Hi,

I am trying to add an area of best fit to a standard scatter plot: I have one set of data points, and two equations for lines of best fit. The desired result is a scatter plot of the data points with a shaded area between the two lines of best fit.

I understand that it is currently not possible to mix categorical and XY charts (https://www.telerik.com/forums/using-area-and-scatter-chart-types-in-one-chart). I have tried drawing the desired area on the scatter chart as per https://docs.telerik.com/kendo-ui/controls/charts/how-to/appearance/draw-on-scatter-plots, however this results in the area being superimposed on the chart surface and prevents user interaction with the data points (tool-tips etc.) so is not an acceptable solution.

Is there any other way to achieve the desired result? Please see attached for a simplified example of what I'm trying to achieve.

David
Top achievements
Rank 1
Iron
Iron
Veteran
 answered on 01 Nov 2019
1 answer
97 views

Hello,

I have a shared datasource that returns a model that has four lists

Model:

public class BillModel : DocumentBaseModel

{

         ...

        public List<HistoryModel> History { get; set; }
        public List<AmendmentModel> Amendments { get; set; }
        public List<OtherDocModel> OtherDocs { get; set; }
        public List<PreviousVersionModel> PreviousVersions { get; set; }

}

Shared Datasource:

             @(Html.Kendo().DataSource<BillModel>()
                       .Name("myDataSource")
                       .Custom(dataSource =>
                       {
                           dataSource
                           .Type("json")
                           .Transport(transport =>
                           {
                               transport.Read(read =>
                               {
                                   read.Action("GetBill", "Bills", new { billNo = "#=Id#" });
                               });
                           });
                       })
                 )

And one of my DDLs:

@(Html.Kendo().DropDownList()
                        .Name("amendments")
                        .DataTextField("Name")
                        .DataValueField("LFID")
                        .DataSource("myDataSource")
                        .HtmlAttributes(new { style = "width: 100%" })
                     .ToClientTemplate()
                 )

Plamen
Telerik team
 answered on 31 Oct 2019
Narrow your results
Selected tags
Tags
+? more
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Iron
Iron
Andrey
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Ambisoft
Top achievements
Rank 2
Iron
Pascal
Top achievements
Rank 2
Iron
Matthew
Top achievements
Rank 1
Sergii
Top achievements
Rank 1
Iron
Iron
Andrey
Top achievements
Rank 1
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?