Approved
Last Updated: 02 Aug 2019 14:40 by peter
Created by: Ehsan
Comments: 1
Category: UI for ASP.NET Core
Type: Feature Request
8
Due to changes in the ASP.NET Core framework and how the Authentication is implemented the MVC5 implementation of the SecurityTrimming option became obsolete. 
Approved
Last Updated: 28 Feb 2019 15:34 by ADMIN
Created by: William
Comments: 2
Category: Grid
Type: Feature Request
5

I'm currently evaluating the ASP .Net Core Components and whilst I'm liking it so far, I have to say - the documentation leaves a lot to be desired.

At the moment, I am trying to use grid and looking at documentation, I have no idea if I am meant to be looking in Kendo.Mvc.UI.Fluent or Kendo.Mvc.UI - and when I am there and find an item, there just isn't enough detail. In addition, the demos section appears to actually be more helpful and I'm constantly looking there.

What caused me to write this is that I have simply enabled GridFilterMode.Row on an instance and whilst I like it, I want to change the default from "Is Equal To" to "Contains"... I have been experimenting for the past few hours without any luck and I'm going round in circles on documentation:

I can see that Filterable requires GridFilterMode, but the documentation is lacking - https://docs.telerik.com/aspnet-core/api/Kendo.Mvc.UI/GridFilterMode#kendomvcuigridfiltermode

I then try to find the filterable modes documentation, but, half the features/methods just don't seem to have any affect whatsoever.

Personally, I'm having great luck learning about your components from the demo section and adapting the code to suite my needs - but, if there isn't a demo, it appears to be a very hard task to learn what is and isn't possible.

Approved
Last Updated: 02 May 2019 07:16 by ADMIN
Created by: Matthew
Comments: 0
Category: UI for ASP.NET Core
Type: Feature Request
4

Implement Recurrence Rule Parser helper that uses the Scheduler recurrenceRule string and parses it in a usable format on the server.

There is already a similar helper for Telerik UI for ASP.NET Ajax.

Approved
Last Updated: 17 Jun 2019 05:46 by ADMIN
Created by: Mathieu
Comments: 1
Category: Scheduler
Type: Feature Request
3

Hello,

We want to "freeze" the first line of scheduler for scrolling.

It's possible? If don't, have you a workaround to make that?

Thanks

Mathieu

Approved
Last Updated: 21 Aug 2019 13:35 by ADMIN
Created by: Luba
Comments: 0
Category: Grid
Type: Feature Request
3

Currently, the functionality for creating a toolbar template with TagHelpers is not available. 

Approved
Last Updated: 29 Aug 2019 12:01 by ADMIN
Implement the custom [DataSourceRequest] attribute, which is used for parsing request data in the Telerik.DataSource NuGet Package. The attribute implementation is yet not present.
Approved
Last Updated: 20 Feb 2019 08:06 by ADMIN

For computations in a custom aggregate function it would be very helpful to have the start and end DateTimes for the current category at hand.  Right now the category parameter just provides a single DateTime which is the start DateTime of the category.  The end DateTime can only be calculated with a workaround provided by Tsvetina

(see this ticket: https://www.telerik.com/account/support-tickets/view-ticket/1386149)

 

Approved
Last Updated: 12 Mar 2019 23:40 by Aldermar
Created by: Aldermar
Comments: 1
Category: TreeView
Type: Feature Request
2
Hence, binding to Model and ViewBad will be feasible.
Approved
Last Updated: 26 Apr 2019 10:16 by ADMIN
Created by: Chris
Comments: 3
Category: Grid
Type: Feature Request
2

I was wanting to create a multiselect filter inside the kendo grid that will filter an array column, NOT a simple string column.  Just adding the .Filterable(ftb => ftb.Multi(true)) does display a basic 'multiselect' with just checkboxes in it, which is not ideal , but does work.  But, when you click filter, the grid becomes empty.  I had to use a clienttemplate() function, to return an html object like so:

export function MultiRowTemplate(data) {
       if (data == null) {
           return "";
       }
       var row = "";
       for (var i = 0, len = data.length; i < len; i++) {
           row += data[i].Description + "<br/>";
       }
       return row;
   }

 

My column is:

columns.ForeignKey(a => a.DisplayExp, (System.Collections.IEnumerable)ViewData["Exp"], "Id", "Description").ClientTemplate("#= MultiRowTemplate(data.DisplayExp) #").Filterable(ftb => ftb.Multi(true)).Title("Experience");

 

the code for the foreign key doesn't make much sense as it's an array column, but that was pointed to by telerik support on other forum posts.  

So, there must be a way to hook into that column and run some custom code to return to the grid the filtered values?  i've seen examples for jquery, and mvc, but theres nothing for .net core.  This should just work out of the box, as I don't think this is an uncommon need.  Could you give me an example or point me in the right direction?

 

 

 

 

Approved
Last Updated: 09 Oct 2019 12:05 by ADMIN
Created by: Laurie
Comments: 1
Category: Drawer
Type: Feature Request
1

I'm trying to use it for navigation in a section using Razor Pages. Having to expand using javascript is very distracting when the user goes from page to page. Below is the code to create a self-running page that demonstrates the issue:


@page
@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>TestDrawer</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.2.514/styles/kendo.common-bootstrap.min.css" />
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2019.2.514/styles/kendo.bootstrap-v4.min.css" />

    @* FontAwesome Pro css*@
    <link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384-xVVam1KS4+Qt2OrFa+VdRUoXygyKIuNWUUUBZYv+n27STsJ7oDOHJgfF0bNKLMJF" crossorigin="anonymous">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>

    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"
            asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
            asp-fallback-test="window.jQuery"
            crossorigin="anonymous"
            integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=">
    </script>
    @* Place Kendo UI scripts after jQuery *@
    <script src="https://kendo.cdn.telerik.com/2019.2.514/js/kendo.all.min.js"
            asp-fallback-src="~/lib/kendo-ui/js/kendo.all.min.js"
            asp-fallback-test="window.kendo">
    </script>
    <script src="https://kendo.cdn.telerik.com/2019.2.514/js/kendo.aspnetmvc.min.js"
            asp-fallback-src="~/lib/kendo-ui/js/kendo.aspnetmvc.min.js"
            asp-fallback-test="kendo.data.transports['aspnetmvc-ajax']">
    </script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
    <style>
        /* Root navigation */
        #root-nav li,
        #example-nav li {
            list-style: none;
        }

        .root-nav-categories h3,
        #example-nav h3 {
            color: #000;
            font-size: 14px;
            line-height: 14px;
            padding: 0.5em 0 0.5em 3.571em;
            text-transform: uppercase;
        }

        #example-nav h3 {
            padding: 1.7em 0 0.5em 3.4em;
        }

        #example-nav-bar {
            border-top: 1px solid #e2e4e7;
        }


        #back-forward {
            display: block;
            position: relative;
            color: #000;
            font-size: 14px;
            line-height: 15px;
            font-weight: normal;
            padding: 1em 3.5em;
            /*vertical-align: middle;*/
        }

        #root-nav h4 a {
            text-align: right;
        }

        .back-nav {
            text-align: left;
        }

            .back-nav:before {
                position: absolute;
                top: 1em;
                left: 1.2em;
            }

        .forward-nav {
            text-align: left;
        }

            .forward-nav:before {
                position: absolute;
                display: block;
                top: 1em;
                right: 1.2em;
                width: 14px;
                height: 14px;
                -ms-transform: rotate(180deg); /* IE 9 */
                -webkit-transform: rotate(180deg); /* Chrome, Safari, Opera */
                transform: rotate(180deg);
            }

        .root-nav-categories {
            margin-top: 1.417em;
        }

        #root-nav,
        #example-nav {
            padding-bottom: 30px;
        }

            #root-nav li a,
            #example-nav li a {
                /*controls customer navigation icon and text size*/
                /*font-size: 13px;*/
                /*line-height: 13px;*/
                color: #2d3e50;
                display: block;
                padding: 0.5em 0 0.5em .5em;
                transition: all .2s ease;
            }

            #example-nav li .group {
                font-size: 13px;
                font-weight: bold;
                line-height: 13px;
                color: #2d3e50;
                display: block;
                padding: 1.5em 0 0.25em 3.7em;
                transition: all .2s ease;
            }

        .flip {
            transform: rotate( -180deg );
            transition: transform 500ms ease;
        }

        .no-boarder {
            border: none;
        }

        .k-drawer-container {
            border: none;
        }

        /*Adjusts width of icon blocks in customer navigation*/
        .k-drawer-wrapper.k-drawer-mini-mode .k-drawer-items {
            width: 3.5rem;
        }

        #root-nav li a:hover,
        #example-nav li a:hover,
        #back-forward:hover {
            color: #000;
            text-decoration: none;
            background-color: #e2e4e7;
        }

        .k-hover-enabled #root-nav li a:hover,
        .k-hover-enabled #example-nav li a:hover {
            background-color: transparent;
        }

        #example-nav .active {
            background-color: #e2e4e7;
            cursor: default;
        }
    </style>
    @*<link rel="stylesheet" href="~/css/site.css" />*@
</head>
<body>
    <div id="example-sidebar" class="border border-secondary">
        @*<div id="nav-wrapper">*@
        <div id="nav">
            <div id="example-nav">
                <kendo-drawer name="drawer" mode="push" on-hide="onHide" min position="left" swipe-to-open="true" template-id="template" class="no-boarder">
                    <mini enabled="true" />
                </kendo-drawer>
            </div>
        </div>
        @*NAVIGATION STACK*@
        @*<a href="#">
                <span class="fa-stack" style="vertical-align: top;">
                    <i class="far fa-circle fa-stack-2x"></i>
                    <i class="far fa-exchange fa-stack-1x"></i>
                </span>
            </a>*@


        <a href="javascript:void(0);" onclick="toggleDrawer();" id="expand" title="Toggle Navigation">
            <span class="fa-stack mb-2 ml-2">
                <i class="far fa-circle fa-stack-2x"></i>
                <i class="far fa-exchange fa-stack-1x"></i>
            </span>
        </a>
        <script>
            function getCookie(cname) {
                var name = cname + "=";
                var decodedCookie = decodeURIComponent(document.cookie);
                var ca = decodedCookie.split(';');
                for (var i = 0; i < ca.length; i++) {
                    var c = ca[i];
                    while (c.charAt(0) == ' ') {
                        c = c.substring(1);
                    }
                    if (c.indexOf(name) == 0) {
                        return c.substring(name.length, c.length);
                    }
                }
                return "";
            }

            $(document).ready(function () {

                var drawerInstance = $("#drawer").data().kendoDrawer;
                var hideMenu = getCookie("HideCustomerMenu");
                if (hideMenu == 'true') {
                    var arrowButton = $("#expand");
                    arrowButton.toggleClass('flip');
                }
                else {
                    drawerInstance.show();
                }

            });

            function toggleDrawer() {
                var drawerInstance = $("#drawer").data().kendoDrawer;
                var drawerContainer = drawerInstance.drawerContainer;
                var arrowButton = $("#expand");

                if (drawerContainer.hasClass("k-drawer-expanded")) {
                    document.cookie = "HideCustomerMenu=true";
                    arrowButton.toggleClass('flip');
                    drawerInstance.hide();
                } else {
                    document.cookie = "HideCustomerMenu=false";
                    arrowButton.toggleClass('flip');
                    drawerInstance.show();
                }


            }
        </script>
        <script id="template" type="text/x-kendo-template">
            <ul class="menuBar list-unstyled">
                <li id="test1"><a href="testdrawer"><i class="fa fa-user-circle fa-2x fa-fw mr-2" aria-hidden="true" title="Page 1"></i>Page 1</a></li>
                <li id="test2"><a href="testdrawer" class="customer"><i class="fa fa-check fa-2x fa-fw mr-2" aria-hidden="true" title="Page 2"></i>Page 2</a></li>
                <li id="test3"><a href="testdrawer" class="customer"><i class="fa fa-random fa-2x fa-fw mr-2" aria-hidden="true" title="Page 3"></i>Page 3</a></li>
                <li id="test4"><a href="testdrawer" class="customer"><i class="fa fa-dollar-sign fa-2x fa-fw mr-2" aria-hidden="true" title="Page 4"></i>Page 4</a></li>
                <li id="test5"><a href="testdrawer" class="customer"><i class="fa fa-paperclip fa-2x fa-fw fa-rotate-90 fa-flip-horizontal mr-2" aria-hidden="true" title="Page 5"></i>Page 5</a></li>
            </ul>
        </script>
    </div>
    <script>
        function onHide(e) {
            e.preventDefault();
        }
    </script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"
            asp-fallback-src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"
            asp-fallback-test="window.jQuery && window.jQuery.fn && window.jQuery.fn.modal"
            crossorigin="anonymous"
            integrity="sha256-E/V4cWE4qvAeO5MOhjtGtqDzPndRO1LBk8lJ/PR7CA4=">
    </script>
</body>
</html>

Approved
Last Updated: 07 Nov 2019 10:18 by ADMIN
Created by: Ben
Comments: 1
Category: UI for ASP.NET Core
Type: Feature Request
1

Hello,

I'm already using UI for ASP.NET Core, but want to use the OrgChart. I see that it's only in UI for ASP.NET AJAX. Can I get OrgChart to work in my ASP.NET core project?


I see that the Diagram component has been suggested as an alternative, but I don't think it's suitable for what I want.

 

Thank you.

Approved
Last Updated: 07 Nov 2019 12:13 by ADMIN
Created by: Anthony
Comments: 0
Category: PDFViewer
Type: Feature Request
1

Provide editable AcroForms support in PDFViewer.

The current implementation of the Kendo PDFViewer depends on pdf.js, so the following should be taken into account:

https://github.com/mozilla/pdf.js/issues/7613

Approved
Last Updated: 28 Nov 2019 15:51 by ADMIN

I would like to be able to refresh the Chat widget or clear previous messages.

Adding the option to customize the position of the input field(top or bottom, for example), would also be a useful feature.

Approved
Last Updated: 11 Mar 2019 16:08 by ADMIN
I don't See Telerik ASP.NET Core in My Tool Box.
Approved
Last Updated: 21 May 2019 08:25 by ADMIN
Created by: n/a
Comments: 5
Category: TreeList
Type: Feature Request
1

Problem Statement: Unable to set the Filterable operators instead of default's in Tree List .Net Core.

When i add the below to the TreeList :

  .Filterable
          (f => f
              .Operators(op => op
                  .ForString(str => str.Clear()
                      .Contains("Contains")
                      .DoesNotContain("Does not contain")
                      .StartsWith("Start with")
                      .EndsWith("Ends with")
                      .IsEqualTo("Is equal to")
                      .IsNotEqualTo("Is not equal to")
                  )))

Error: 

Severity Code Description Project File Line Suppression State
Error CS1061 'TreeListFilterableSettingsBuilder<dynamic>' does not contain a definition for 'Operators' and no accessible extension method 'Operators' accepting a first argument of type 'TreeListFilterableSettingsBuilder<dynamic>' could be found (are you missing a using directive or an assembly reference?) MSA_Client_Portal C:\Users\anilc\source\repos\Client Portal - NEW\src\MSA_Client_Portal\Views\LegislationSection\LegislationTree.cshtml 90 Active

 

Approved
Last Updated: 21 May 2019 08:13 by ADMIN
Created by: n/a
Comments: 1
Category: UI for ASP.NET Core
Type: Feature Request
1

Hi

Would like to request to bind Treelist from Datatable with dynamic type

And Totreedatasocure to accomidate for dynamic datatable rather tha at row of static table.

Thank you

Approved
Last Updated: 20 May 2019 14:34 by ADMIN
Created by: Graeme
Comments: 1
Category: DropDownList
Type: Feature Request
1

Hi there

I am using MongoDb database and storing much of the data as complex objects.

Like this

Company

string     Name

string     Phone

object[]    Addresses

                   object Id

                   string name

                   string line2

                   string town

So the addresses are not stored in normalised tables such as you would have in a typical sql setup

Also I am using Razor pages and not using view models but binding to page model properties

mostly matching the database document. 

One thing I am wanting to do is make the best of such a plan as it saves a lot of coding time.

If I have a telerik control such as a dropdownlist you would typically return an Id and keep the Id

in the database table.  However in the new style of document database it is common to store

the entire object and not just the Id so the problem is if the control returns only the Id then

the developer has to obtain the rest of the object to store away adding the the complexity of the code.

Telerik allows very easy binding of an object to a control and the whole object remains available to use

such as in a dropdownlist to show a name and return say the Id.

An improvement for those using Document style databases with denormalised data would be the option

to simply return the whole object.

@(Html.Kendo().DropDownList()
                .Name("ToBranch") 
                .DataValueField("Id") 
                .DataTextField("Name") 
                .BindTo((Company.Addreses) 
)

So in addition to DataValueField have something like DataReturnObject(true) or something like that

which would send back all the data for the item which you already have sitting right there.

This would very nicely serialise into the pagemodel complex object property and allow proper model validation

which is a problem when you return an Id but the property expects the full object.

I understand all this can be overcome but just a little tweaking by Telerik would be a significant benefit

where your customers are using document style databases such as MongoDb and Azure Cosmos

 

So..

1 That is my suggestion.

2 Can I currently achieve this somehow?

 

              

        

Approved
Last Updated: 13 Sep 2019 06:55 by ADMIN
Created by: Alberto Zanetti
Comments: 1
Category: Gantt
Type: Feature Request
1
I'm working with the Gantt in asp.net core and it's okay apart for the height.
I need it to be as high as the data inside it, similar to what you can do with grids.
I searched but I didn't find anything that would allow it;
How i can achive this result?
Approved
Last Updated: 25 Sep 2019 09:49 by ADMIN
Created by: Dan
Comments: 1
Category: PDFViewer
Type: Feature Request
1
Is it possible to show the document map/bookmarks when using the PDFViewer ?
Approved
Last Updated: 01 Jul 2019 15:35 by ADMIN
Created by: KSafadi
Comments: 3
Category: DateTimePickers
Type: Feature Request
1

Hey,

It would be very useful if the TimePicker component would have a feature called something like "AutoFocusTime()". By default, when there is no value inside the TimePicker, the default focused time is "12:00 am", therefore the user has to scroll up all the way to the required time. With the feature above, it would be possible to enter a time which should be focused by default. For example "8:00 am" which is when most businesses start operating.

Now the question is, why not just putting in a default value. Well, in a form with lots of inputs, the user may not know anymore which values he entered and which inputs have a default value set and therefore submitting wrong data. If a input doesn't have a default value this mistake can be caught by setting a [Required] attribute. Threfore, the user has to enter a value and it will be guaranteed that all values where entered by him and it wasn't a default value which has been set.

See ticket id 1412837.

1 2