Telerik Forums
UI for ASP.NET Core Forum
1 answer
99 views

Hello,

Is posible to override behavior when multiple option is set, to not holding CTRL button to select multiple dates. I want user to use this behavior as default just by normal mouse click on dates.

Thanks.

Georgi
Telerik team
 answered on 09 May 2019
0 answers
215 views

I noticed that my ModelState becomes invalid if the user doesn't select any value from a cascaded set of dropdowns.  Once you select a value, it becomes valid.  How do I fix this, and actually save my model if the user doesn't actually select anything?  Not selecting anything just means I won't save anything on Post.

 

thanks

Chris
Top achievements
Rank 1
 asked on 09 May 2019
2 answers
129 views

For a bar chart there is a property Stack

HtmlHelper-Example:

.SeriesDefaults(sd => sd.Bar().Stack(true))

 

This I can not find in the TagHelper. How can I display a bar chart with stacked bars?

Heiko
Top achievements
Rank 1
Iron
Veteran
 answered on 07 May 2019
4 answers
175 views

Hello,

 

I have problem with the ImageBrowser component inside the Editor component in .NET Core 2.2. (It's working in the local example, but I not find the difference)

I use the local example as starting point, I copy the code from the example to my project. 

1. My controller:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Kendo.Mvc.UI;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using MyCoreSite.Models.Image;
using MyCoreSite.Mvc.Attributes;
 
namespace MyCoreSite.Areas.Admin.Controllers
{
    [ViewLayout("_LayoutAdmin")]
    public class ImageBrowserController : EditorImageBrowserController
    {
        private const string contentFolderRoot = "shared/";
        private const string folderName = "Images/";
        private static readonly string[] foldersToCopy = new[] { "shared/images/employees" };
 
        /// <summary>
        /// Gets the base paths from which content will be served.
        /// </summary>
        public override string ContentPath
        {
            get
            {
                return CreateUserFolder();
            }
        }
 
        public ImageBrowserController(IHostingEnvironment hostingEnvironment)
            : base(hostingEnvironment)
        {
        }
 
        public override JsonResult Read(string path)
        {
            var z = base.Read(path);
            return z;
        }
 
        private string CreateUserFolder()
        {
            var virtualPath = Path.Combine(contentFolderRoot, "UserFiles", folderName);
            var path = HostingEnvironment.WebRootFileProvider.GetFileInfo(virtualPath).PhysicalPath;
 
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
                foreach (var sourceFolder in foldersToCopy)
                {
                    CopyFolder(HostingEnvironment.WebRootFileProvider.GetFileInfo(sourceFolder).PhysicalPath, path);
                }
            }
            return virtualPath;
        }
 
        private void CopyFolder(string source, string destination)
        {
            if (!Directory.Exists(destination))
            {
                Directory.CreateDirectory(destination);
            }
 
            foreach (var file in Directory.EnumerateFiles(source))
            {
                var dest = Path.Combine(destination, Path.GetFileName(file));
                System.IO.File.Copy(file, dest);
            }
 
            foreach (var folder in Directory.EnumerateDirectories(source))
            {
                var dest = Path.Combine(destination, Path.GetFileName(folder));
                CopyFolder(folder, dest);
            }
        }
    }
}

2. My view:

@* Make sure tag helpers are not available for the Editor content *@
@removeTagHelper "*, Microsoft.AspNet.Mvc.Razor"
@removeTagHelper "*, Microsoft.AspNetCore.Mvc.Razor"
 
@{
    ViewBag.Title = "Template";
    PageInfo PI = ViewBag.PI;
}
 
<div class="content-heading">
    <div>
        Page title
        <small>Subtitle</small>
    </div>
</div>
<div class="row">
    <div class="col-xl-12">
        <url class="nav-link text-dark" asp-area="Admin" asp-controller="ImageBrowser" asp-action="Index"><localize>Image Browser</localize></url>
    </div>
    <div class="col-xl-12">
        @(Html.Kendo().Editor()
       .Name("editor")
       .HtmlAttributes(new { style = "width: 100%;height:440px" })
       .Tools(tools => tools
           .Clear()
           .Bold().Italic().Underline().Strikethrough()
           .JustifyLeft().JustifyCenter().JustifyRight().JustifyFull()
           .InsertUnorderedList().InsertOrderedList()
           .Outdent().Indent()
           .CreateLink().Unlink()
           .InsertImage()
           .InsertFile()
           .SubScript()
           .SuperScript()
           .TableEditing()
           .ViewHtml()
           .Formatting()
           .CleanFormatting()
           .FontName()
           .FontSize()
           .ForeColor().BackColor()
           .Print()
        )
        .ImageBrowser(imageBrowser => imageBrowser
            .Image("~/shared/UserFiles/Images/{0}")
            .Read("Read", "ImageBrowser")
            .Create("Create", "ImageBrowser")
            .Destroy("Destroy", "ImageBrowser")
            .Upload("Upload", "ImageBrowser")
        )
       .Value(@<text>
                <p>
                  Example
                </p>
               </text>)
        )
    </div>
</div>
 
@section Styles {
 
}
 
@section Scripts {
     
}

 

3. The result:

[Attached file: teler1.jpg]: It's shows undefined items. The image file structure can be find at the right. The item and file count are equal.

[Attached file: teler2.jpg]: It seems that the control detect the files as a directory instead of file.

4. Reference scripts used:

<script src="/js/telerik/jszip.min.js"></script>
<script src="/js/telerik/kendo.all.min.js"></script>
<script src="/js/telerik/kendo.aspnetmvc.min.js"></script>
<script src="/js/telerik/cultures/kendo.culture.en-US.min.js"></script>
<script src="/js/telerik/messages/kendo.messages.en-US.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        kendo.culture("en-US");
    });
</script>

 

Can you help me please solve this problem?

Thank you!

Baracskai
Top achievements
Rank 1
 answered on 07 May 2019
1 answer
473 views

I have requirement to allow editable row for one column in Parent row of Parent-Child Grid. I am able to display field in popup window by hiding all other non required field. But I am getting validation message for hide field while update the required field. Please help me to find out the solution either displays only required field in popup window without hiding all other fields or how to stop validation for non-required field in popup window. Below is my code in View:

@model IEnumerable<StarTrax.Mvc.Models.ToFindListViewModel>
@{
    ViewData["Title"] = "View";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@(Html.Kendo().Grid(Model)
                    .Name("grid")
                    .Columns(columns =>
                    {
                        columns.Bound(e => e.Name).Width(110).Title("List Name");
                        columns.Bound(e => e.CreatedAt).Width(110).Title("Create Date").Format("{0:MM/dd/yyyy}");
                        columns.Bound("").Width(110).Title("Created By");
                        columns.Command(command => { command.Edit(); command.Destroy(); }).Width(160);
                    })
                    .Editable(editable => editable.Mode(GridEditMode.PopUp)).HtmlAttributes(new { style = "width:300px;font-size:12px;height: 200px;" })
                    .Sortable()
                    .Pageable()
                    .Scrollable()
                    .ClientDetailTemplateId("template")
                    .HtmlAttributes(new { style = "height:430px;" })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .PageSize(10)
                        .Events(events => events.Error("error_handler"))
                        .Model(model =>
                        {
                            model.Id(p => p.EntityId);
                        })
                        .Read(read => read.Action("GetAll", "ToFindList"))
                        .Update(update => update.Action("Edit", "ToFindList"))
                        .Destroy(update => update.Action("Delete", "ToFindList"))
                    )
                    .Events(events =>
                    {
                        events.DataBound("dataBound");
                        events.Edit("hideField");
                    })
)

<script id="template" type="text/kendo-tmpl">
    @(Html.Kendo().Grid< StarTrax.Mvc.Models.AssetToFindViewModel> ()
                    .Name("grid_#=EntityId#")
                    .Columns(columns =>
                    {
                        columns.Bound(o => o.Asset.EPC.BarCode).Width(110).Title("Barcode");
                        columns.Bound(o => o.Asset.SerialNumber).Width(110).Title("Serial Number");
                        columns.Bound(o => o.Asset.Name).Width(200).Title("Asset Name");
                        columns.Bound(o => o.Asset.Status).Width(200);
                    })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .PageSize(10)
                        .Read(read => read.Action("GetToFindAssets", "ToFindList", new { toFindListId = "#=EntityId#" }))
                    )
                    .Pageable()
                    .Sortable()
                    .ToClientTemplate()
    )
</script>
<script>
    function dataBound() {
        this.expandRow(this.tbody.find("tr.k-master-row").first());
    }

    function hideField(e) {
        $("#CreatedAt").hide();
        $("#CreatedAt").editable = false;
        $("label[for='CreatedAt']").hide();
        $("#OrganizationId").hide();
        $("#OrganizationId").editable = false;
        $("label[for='OrganizationId']").hide();
        $("#CreatedBy").hide();
        $("#CreatedBy").editable = false;
        $("label[for='CreatedBy']").hide();
        $("#LastModifiedBy").hide();
        $("#LastModifiedBy").editable = false;
        $("label[for='LastModifiedBy']").hide();
        $("#UpdatedAt").hide();
        $("#UpdatedAt").editable = false;
        $("label[for='UpdatedAt']").hide();
        $("#EntityId").hide();
        $("#EntityId").editable = false;
        $("label[for='EntityId']").hide();
        $("#Deleted").hide();
        $("#Deleted").editable = false;
        $("label[for='Deleted']").hide();
    }
 </script>

<script type="text/javascript">
    function error_handler(e) {
        debugger;
        if (e.errors) {
            var message = "Error:\n";

            var grid = $('#locationGrid').data('kendoGrid');
            var gridElement = grid.editable.element;

            var validationMessageTemplate = kendo.template(

                "<div id='#=field#_validationMessage' class='k-widget k-tooltip k-tooltip-validation k-invalid-msg field-validation-error' " +
                "style='margin: 0.5em;' data-for='#=field#' data-val-msg-for='#=field#' role='alert'>" +
                "<span class='k-icon k-warning'> " +
                "</span > " +
                "#=message#" +
                "<div class='k-callout k-callout-n'> " +
                "</div > " +
                "</div>"
            );

            $.each(e.errors, function (key, value) {
                if (value.errors) {
                    gridElement.find("[data-valmsg-for=" + key + "],[data-val-msg-for=" + key + "]").replaceWith(validationMessageTemplate({ field: key, message: value.errors[0] }));
                    gridElement.find("input[name=" + key + "]").focus();
                    //alert(value.errors[0]);
                }
            });

            grid.one("dataBinding", function (e) {
                e.preventDefault();
            });
        }
    }
</script>

 

Georgi
Telerik team
 answered on 07 May 2019
1 answer
103 views

I have Parent-Child Grid and I need to provide in-line editable feature in parent row in a particular cell. I have tried GridEditMode.InLine editable but it didn't allow to display the grid value. Please help me to find out the problem area below is my code in View:

 

@model IEnumerable<StarTrax.Mvc.Models.ToFindListViewModel>
@{
    ViewData["Title"] = "View";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@(Html.Kendo().Grid(Model)
                    .Name("grid")
                    .Columns(columns =>
                    {
                        columns.Bound(e => e.Name).Width(110).Title("List Name");
                        columns.Bound(e => e.CreatedAt).Width(110).Title("Create Date").Format("{0:MM/dd/yyyy}");
                        columns.Bound("").Width(110).Title("Created By");
                        columns.Command(command =>
                        {
                            command.Edit();
                            command.Destroy();
                        }).Width(120);
                    })
                    .Editable(editable => editable.Mode(GridEditMode.InLine))
                    .Sortable()
                    .Pageable()
                    .Scrollable()
                    .ClientDetailTemplateId("template")
                    .HtmlAttributes(new { style = "height:430px;" })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .PageSize(10)
                        .Model(model => model.Id(p => p.EntityId))
                        .Read(read => read.Action("GetAll", "ToFindList"))
                        .Update(update => update.Action("Edit", "ToFindList"))
                        .Destroy(destroy => destroy.Action("Delete", "ToFindList"))
                    )
                    .Events(events => events.DataBound("dataBound"))
)

<script id="template" type="text/kendo-tmpl">
    @(Html.Kendo().Grid< StarTrax.Mvc.Models.AssetToFindViewModel> ()
                    .Name("grid_#=EntityId#")
                    .Columns(columns =>
                    {
                        columns.Bound(o => o.Asset.EPC.BarCode).Width(110).Title("Barcode");
                        columns.Bound(o => o.Asset.SerialNumber).Width(110).Title("Serial Number");
                        columns.Bound(o => o.Asset.Name).Width(200).Title("Asset Name");
                        columns.Bound(o => o.Asset.Status).Width(200);
                    })
                    .DataSource(dataSource => dataSource
                        .Ajax()
                        .PageSize(10)
                        .Read(read => read.Action("GetToFindAssets", "ToFindList", new { toFindListId = "#=EntityId#" }))
                    )
                    .Pageable()
                    .Sortable()
                    .ToClientTemplate()
    )
</script>
<script>function dataBound() {
        this.expandRow(this.tbody.find("tr.k-master-row").first());
    }</script>

Georgi
Telerik team
 answered on 07 May 2019
1 answer
154 views

Hi,

Is this also available for ASP.NET Core (MVC/Razor)? Or is this functionality limited to webforms?

https://demos.telerik.com/aspnet-ajax/grid/examples/functionality/filtering/excel-like-filtering/defaultcs.aspx

 

Thanks!

Alex Hajigeorgieva
Telerik team
 answered on 06 May 2019
3 answers
116 views

Hello,

 

I'm running into an issue where I cannot filter items in a DropDownList when I tab onto it when .Filter is enabled.  When I tab onto the DropDownList I can cycle through items just fine with the arrow keys.

 

I'm aware of ALT + Down arrow to open up the DropDownList, and that works just fine, but I find that it is more intuitive to start typing once it has been selected, especially when filling out a form. I was wondering if it is possible to have the DropDownList open when it has been selected with Tab, or if there is a way to remap the shortcut.

Joana
Telerik team
 answered on 06 May 2019
2 answers
212 views

Hi,

Is there any option for hiding Filter Menu Icon ? I have seen there is a ShowFilterIcon option at Ajax Grid but i think its not available option for ASP.Net Core Grid.

ibrahim
Top achievements
Rank 1
 answered on 02 May 2019
3 answers
516 views

Hi,

We want to use the .net core scheduler for people to define their availability online.  This maybe as single meetings or a reoccurring meeting.  This will probably use the standard web api and db schema used in the telerik examples.  What I then need is a helper function that will return me all the periods of time a single user is available in a given week.  I have read elsewhere that recurrence is client side only and that a library such as ical.net is needed to load/cast the data and then interpret it using its functions.  However I see in this telerik example there is a class that seems to do this:

https://docs.telerik.com/devtools/aspnet-ajax/controls/scheduler/server-side-programming/working-with-recurring-appointments

Before I go down the ical.net path can someone confirm if there is standard telerik SERVER code to get back dates from recurring meetings saved by the schedule and maybe provide more details or an example?

Thanks, Matt

 

 

 

 

Dimitar
Telerik team
 answered on 02 May 2019
Narrow your results
Selected tags
Tags
+? more
Top users last month
Jay
Top achievements
Rank 3
Bronze
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jay
Top achievements
Rank 3
Bronze
Iron
Iron
yw
Top achievements
Rank 2
Iron
Iron
Stefan
Top achievements
Rank 2
Iron
Iron
Iron
Kao Hung
Top achievements
Rank 1
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?