This is a migrated thread and some comments may be shown as answers.

Reporting a few bugs

22 Answers 1060 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Mathieu
Top achievements
Rank 1
Mathieu asked on 04 Jun 2012, 09:26 PM
Hi,

I've been using the Telerik Extensions for ASP.NET MVC for about 6 months now and I was excited to try the Kendo UI MVC Extensions. However, after trying it out for a few hours I do not think it is ready to be used for my new project, I'll stick to Telerik for a bit longer. Here are the bugs (I think they're bugs) I've found so far.

1) Localization. I was happy to see the text localize when I switch the page's CurrentCulture. Somehow, the grid is properly localized BEFORE the data loads but switches back to default (en-US) as soon as the binding finishes. Currencies are not localized either.

2) Aggregates. If the grid is empty, I get a Javascript Error: Uncaught ReferenceError: count is not defined and the default "No records to display" message is not displayed. This does not happen with Telerik MVC extensions.

3) Aggregates - date format. There's a problem with grouping and displaying dates (probably related to Json). Without grouping the dates are fine, but with grouping I get: /Date(1337704107810)/ . Once again this would not happen with Telerik.

4) Horizontal scrolling. I'm not sure if this is a bug or a bad setting, but when using horizontal scrolling with a grid that has groups and aggregate Sums and Counts in the main grid footer, the footer is static, it does not scroll with the rest of the grid. This works fine with Telerik. The detail footers scroll as expected though.

Let me know if you need further details to reproduce the issues.

Thanks,
Mathieu

22 Answers, 1 is accepted

Sort by
0
Atanas Korchev
Telerik team
answered on 05 Jun 2012, 05:47 AM
Hi, 

Up to your comments:
  1. We need more info about this one. Generally speaking the Kendo grid initializes from the table which is rendered by the HtmlHelper extension. Then it uses current client-side culture for displaying dates. You can change the  culture as shown in the globalization demo: http://demos.kendoui.com/web/globalization/index.html 
  2. We need more info about this as well - paste here the declaration of your grid. On a side note the empty records template is not yet implemented in the beta.
  3. We need the configuration of your grid as well.
  4. We will investigate this one and see if it is already fixed or not.

Regards,
Atanas Korchev
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
Mathieu
Top achievements
Rank 1
answered on 05 Jun 2012, 04:30 PM
Here's my code for the perfectly working Telerik Grid. The this.GetQueryable() method calls the repository and returns an IQueryable<TransactionSearchViewModel> filtered by the CompanyId.

Controller Method
[GridAction]
        public ActionResult BindTransactionGrid(TransactionSearchViewModel search)
        {
            var model = this.GetQueryable(search);
 
            return View(new GridModel(model));
        }

Grid markup (Razor)
@model TransactionSearchViewModel
         
<div id="purchasehistory-transactiongrid-content">
    @(Html.Telerik().Grid<TransactionInfoViewModel>()
          .Name("purchasehistory-transactiongrid")
          .ClientEvents(events => events.OnDataBinding("purchasehistory_onDataBinding").OnDataBound("purchasehistory_onDataBound"))
          .Columns(columns =>
              {
                  columns.Bound(o => o.ModifiedDate)
                      .Format("{0:yyyy/MM/dd HH:mm:ss}").Width(130)
                      .Aggregate(x => x.Count())
                      .ClientFooterTemplate("Total : <#= Count #>")
                      .ClientGroupFooterTemplate("Total : <#= Count #>");
                  columns.Bound(o => o.POSDisplay).Width(100);
                  columns.Bound(o => o.DivisionName).Width(100);
                  columns.Bound(o => o.ProductDisplay).Width(150);
                  columns.Bound(o => o.ProductQuantity).Width(40)
                      .Aggregate(x => x.Sum())
                      .ClientFooterTemplate("<#= Sum #>")
                      .ClientGroupFooterTemplate("<#= Sum #>");
                  columns.Bound(o => o.Total).Width(75).Format("{0:c}")
                      .Aggregate(x => x.Sum())
                      .ClientFooterTemplate("<#= $.telerik.formatString('{0:c}', Sum) #>")
                      .ClientGroupFooterTemplate("<#= $.telerik.formatString('{0:c}', Sum) #>");
                  columns.Bound(o => o.PersonDisplayName).Width(100);
                  columns.Bound(o => o.PersonJobDisplay).Width(140);
                  columns.Bound(o => o.PersonCode).Width(70);
                  columns.Bound(o => o.TransactionType).Width(65);
              })
          .Resizable(x => x.Columns(true))   
          .DataBinding(dataBinding => dataBinding.Ajax().Select("BindTransactionGrid", "PurchaseHistory", this.Model).Enabled(true))
          .Resizable(x => x.Columns(true))
          .Scrollable(scrolling => scrolling.Enabled(true).Height("auto"))
          .Sortable(sorting => sorting.Enabled(true).SortMode(Telerik.Web.Mvc.UI.GridSortMode.SingleColumn)
              .OrderBy(o => o.Add(m => m.ModifiedDate).Descending()))
          .Pageable(paging => paging.Enabled(true).PageSize(20))
          .Filterable(filtering => filtering.Enabled(true))
          .Filterable(filtering => filtering.Filters(x => x.Add(o => o.ModifiedDate).IsGreaterThanOrEqualTo(DateTime.Today)))
          .Groupable(grouping => grouping.Enabled(true))
          .Footer(true))
</div>

Javascript code
$(document).ready(function () {
    $('#purchasehistory-company').bind('change', function () {
        var grid = $('#purchasehistory-transactiongrid').data('tGrid');
        grid.ajaxRequest();
        if (grid.currentPage != 1) {
            grid.pageTo(1);
        }
    });
});
function purchasehistory_onDataBinding(e)
{
    e.data = {
        CompanyId: $('#purchasehistory-company').val()
    };
}

Here's my code for the equivalent Kendo UI grid:

Controller Method
public ActionResult BindKendoGrid([DataSourceRequest]DataSourceRequest request, string companyId)
        {
            var model =
                this.GetQueryable(
                    new TransactionSearchViewModel() { CompanyId = Guid.Parse(companyId) }).
                    ToDataSourceResult(request);
 
            return this.Json(model);
        }

Grid markup (Razor)
<div id="kendoGrid">
    @(Html.Kendo().Grid<TransactionInfoViewModel>()
          .Name("purchasehistory-kendogrid")
          .Columns(columns =>
              {
                  columns.Bound(o => o.ModifiedDate).Format("{0:yyyy/MM/dd HH:mm:ss}").Width(130)
                      .ClientFooterTemplate("Total : #=count#")
                      .ClientGroupFooterTemplate("Total : #=count#");
                  columns.Bound(o => o.POSDisplay).Width(100);
                  columns.Bound(o => o.DivisionName).Width(100);
                  columns.Bound(o => o.ProductDisplay).Width(150);
                  columns.Bound(o => o.ProductQuantity).Width(40)
                      .ClientFooterTemplate("#=sum #")
                      .ClientGroupFooterTemplate("#=sum #");
                  columns.Bound(o => o.Total).Width(75).Format("{0:c}")
                      .ClientFooterTemplate("#=kendo.format('{0:c}', sum)#")
                      .ClientGroupFooterTemplate("#=kendo.format('{0:c}', sum)#");
                  columns.Bound(o => o.PersonDisplayName).Width(100);
                  columns.Bound(o => o.PersonJobDisplay).Width(140);
                  columns.Bound(o => o.PersonCode).Width(70);
                  columns.Bound(o => o.TransactionType).Width(65);
              })
          .DataSource(datasource => datasource
              .Ajax()
              .PageSize(20)
              .Aggregates(aggregates =>
                  {
                      aggregates.Add(x => x.ModifiedDate).Count();
                      aggregates.Add(x => x.ProductQuantity).Sum();
                      aggregates.Add(x => x.Total).Sum();
                  })
              .Read(read => read.Data("kendoDataBinding").Action("BindKendoGrid", "PurchaseHistory"))
              .Sort(sort => sort.Add(x => x.ModifiedDate).Descending())
              .Filter(filter => filter.Add(x => x.ModifiedDate).IsGreaterThanOrEqualTo(DateTime.Today))
          )
          .Resizable(x => x.Columns(true))
          .Scrollable()
          .Sortable(x => x.SortMode(Kendo.Mvc.UI.GridSortMode.SingleColumn))
          .Pageable()
          .Filterable()
          .Groupable()
          .Footer(true))
</div>

Javascript
$(document).ready(function () {
    $('#purchasehistory-company').bind('change', function () {
        var grid = $('#purchasehistory-kendogrid').data('kendoGrid');
        grid.dataSource.read();
    });
});
function kendoDataBinding() {
    var data = {
        companyId: $('#purchasehistory-company').val()
    };
 
    return data;
}

I hope this helps,
Mathieu
0
Mathieu
Top achievements
Rank 1
answered on 05 Jun 2012, 04:37 PM
About the localization, when the grid is first initialized, I assume that the javascript kendo.culture() is set to the page's CurrentCulture. I understand that I could find a way to force this each time the DataSource object refreshes, but should't the client-side culture be passed to the server through the DataSourceRequest object just like any other grid state object (paging, ordering, filtering, etc.)??

I also found another problem with my Kendo UI grid. Each time I attempt to apply a kendo filter, I get a server error. It seems like my Controller method does not recognize the DataSourceRequest object when a filter is applied. I get a NullReference exception, as if the BindKendoGrid method had never been defined.

Thanks,
Mathieu
0
Atanas Korchev
Telerik team
answered on 06 Jun 2012, 07:33 AM
Hello,

 The Kendo culture should be set only once with the current culture of the page. There is no need to send it to the server.
 
 We couldn't reproduce 2 and 3. Is there a chance to send us a runnable project? We would really like to fix those problems.

 We managed to reproduce 4 and fixed it.

 The NullReferenceException when filtering is a known issue which has been fixed recently.

Regards,
Atanas Korchev
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
Mathieu
Top achievements
Rank 1
answered on 07 Jun 2012, 02:09 PM
Ok, I'm preparing a quick solution package... I'll post it here asap.

Edit.

Here is the code: http://dl.dropbox.com/u/45229958/Code/20120607-TelerikVsKendoUI.zip

I kept the code as simple as possible and was able to reproduce all the bugs. Even the filtering issue keeps showing up even if I do not pass supplementary data to the BindKendoGrid method. Somehow the filtering works when activated through the UI, but fails when set using the Markup (I had to comment the .Filter() line in my .DataSource statement for the grid to work).
0
Rosen
Telerik team
answered on 12 Jun 2012, 12:41 PM
Hi Mathieu,

Thanks for the sample project. We managed to observed and to address the filtering and grouping issues you have described. The fixes will be included in the next release. Meanwhile I have updated your telerik points.

Regards,
Rosen
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
Mathieu
Top achievements
Rank 1
answered on 12 Jun 2012, 03:38 PM
Great! Any clue about the localization issue?
0
Rosen
Telerik team
answered on 13 Jun 2012, 06:56 AM
Hi Mathieu,

I have attached a modified version of the View in question, which demonstrates how to enable the globalization feature for the client side rendering.

Greetings,
Rosen
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
Mathieu
Top achievements
Rank 1
answered on 14 Jun 2012, 11:29 PM
Hi Rosen,

I'm sorry to report that even after adding the kendo.culture() javascript statement in my code I'm still getting the same behavior. The grid is properly localized when the page first loads, as seen when I put a breakpoint in my HomeController binding method. However, when the binding method returns and the grid refreshes, it switches back to english. I havent investigated much but I'm pretty sure that something needs to be done to the KendoUI .ToDataSourceResult() to pass the culture as a Json parameter and keep the localisation info intact!

Thanks,
Mathieu
0
Rosen
Telerik team
answered on 18 Jun 2012, 08:02 AM
Hello Mathieu,

I'm afraid that in the current version of KendoUI Grid for ASP.NET MVC, the localization is not fully supported. Currently, it does support globalization, which is demonstrated in the View provided in my previous message.

Regards,
Rosen
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
John
Top achievements
Rank 1
answered on 21 Jun 2012, 05:16 PM
I am having the same problem as in #2 of the original post. If you are using aggregates on your grid with aggregate functions in a footer template, but the grid's dataSource.Data is empty the page will throw an error when you create the grid. Also, if you have the case as previously stated, but initialize the grid with data, the page will throw an error if you try to clear the data of the dataSource. I have made up a jsFiddle that shows my problem. http://jsfiddle.net/7FBaj/1/ .

Is this a bug, or am I doing something wrong? I've only been working with Kendo UI for a few weeks now, so it may just be that there is a better way to clear a dataSource that uses aggregates.

Thanks!
John
0
Rosen
Telerik team
answered on 22 Jun 2012, 06:05 AM
Hi John,

The described issue is already fixed. You may download the Q2 2012 Beta and give it a spin.

Regards,
Rosen
the Telerik team
Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
0
Liu
Top achievements
Rank 1
answered on 27 Jul 2017, 01:51 AM

HI,

我建立了一個 vb.net 的 Telerik ASP.NET MVC Application專案,然後選擇GRID and Menu這個範本,

執行後發生這個錯誤訊息造成Kendo UI 的GRID不能用 :

" BC31429: 'Grid' 模稜兩可,因為在 class 'Kendo.Mvc.UI.Fluent.WidgetFactory' 中有多種具有這個名稱的成員。 "

最後發現是2017.2.621.545這個版本的Kendo.Mvc.dll有問題,然後我換成2016.3.1118.545版本的dll就好了,

請問有其他人也有發生過這個問題嗎?

I've been creating a Telerik ASP.NET MVC Application for VB.net , then chosed a "GRID and Menu" Template, after running  my project ,there is a error message :  " BC31429: 'Grid' 模稜兩可,因為在 class 'Kendo.Mvc.UI.Fluent.WidgetFactory' 中有多種具有這個名稱的成員。 "

And I finally fount out that  there is a problem in  Kendo.Mvc.dll  (2017.2.621.545 version) ,

when i replaced it with 2016.3.1118.545 version, everying is ok. 

Is there any one have same problem like me ?

thany you.

 

 

 

 

0
Alex Hajigeorgieva
Telerik team
answered on 31 Jul 2017, 01:25 PM
Hello Liu,

We recently fixed an error with the VB Razor syntax. The internal build that includes the fix is available for download. Please download it and let us know how it works for you. It is 2017.2.707. I do not understand Chinese so if the error is not the one below, I would need more information in English so that I can help you further.:

'Grid' is ambiguous because multiple kinds of members with this name exist in class 'Kendo.Mvc.UI.Fluent.WidgetFactory'

Kind Regards,
Alex Hajigeorgieva
Progress Telerik
Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements
0
Liu
Top achievements
Rank 1
answered on 01 Aug 2017, 07:39 AM

Yes that's my error message for  VB Razor . 

But I don't understand what is  "internal build"  and where to download the fix ,

Do you mean that i have to reinstall  all part of Kedoui  again ?

 

by the way And Now there is another question(maybe Bug) : 

Also I've been creating a Telerik ASP.NET MVC Application for VB.net , then chosed a standard template ,

and i only creating  one kendoUI razor button on  MVC view ,

when i use IE11、IE10、IE9,it costed  about 20~40 seconds to render this page.

and not this situation happened in Goolgle or edge even IE8.

 

Ansalso I  I finally fount out that  these  two css file cause the problem: 

<link href="https://kendo.cdn.telerik.com/2017.2.621/styles/kendo.common-material.min.css" rel="stylesheet" type="text/css" />
<link href="https://kendo.cdn.telerik.com/2017.2.621/styles/kendo.material.min.css" rel="stylesheet" type="text/css" />

still not work even if i downloaded these two css file to local side,   it seems that there are some compatibility problem between

these css and IE. 

 

Thanks!

Liu

 

0
Alex Hajigeorgieva
Telerik team
answered on 01 Aug 2017, 03:09 PM
Hello Liu,

As our licensed client, you can download the latest builds as they become available to you. This means that you do not have to wait for major releases to get the newest features and bugfixes (every 1-3 weeks or so).

To get the latest internal build:

- Go to your account:

https://www.telerik.com/account/my-downloads

- Click on the desired product and select the latest internal build:



Let me know if you experience any issues when you try it with the latest version.

Kind Regards,
Alex Hajigeorgieva
Progress Telerik
Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
0
Liu
Top achievements
Rank 1
answered on 02 Aug 2017, 12:49 AM

HI,

VB Razor bug had been fixed , thanks for your team.

But the performance problem  of Css  below still exist ,

<link href="https://kendo.cdn.telerik.com/2017.2.621/styles/kendo.common-material.min.css" rel="stylesheet" type="text/css" />
<link href="https://kendo.cdn.telerik.com/2017.2.621/styles/kendo.material.min.css" rel="stylesheet" type="text/css" />

they cause ie11、ie10、ie9  run  very slowy when opening the page , again asking for your help

 

Thanks!
Liu

 

 

 

0
Alex Hajigeorgieva
Telerik team
answered on 04 Aug 2017, 02:38 PM
Hi Liu,

I have no knowledge of such performance issue which is caused by the Material Theme CSS files. However, IE is known for being less powerful with large amounts of HTML on the page compared to other modern browsers. 

I suggest testing if another theme may perform better - for example, our new Default theme:


Did you know you could change themes on our demos page from the top right -hand corner?

http://demos.telerik.com/kendo-ui/grid/index




Finally, if you are able to send us a project which displays the performance issue with some steps how to reproduce it, I would be able to investigate the cause.

Kind Regards,
Alex Hajigeorgieva
Progress Telerik
Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
0
Liu
Top achievements
Rank 1
answered on 20 Dec 2017, 02:18 AM

Hi, 
i tried to use kendo gantt to make a treeList like your web demo :
https://demos.telerik.com/kendo-ui/gantt/index
But after i set parentid,there was nothing happend.

My code like this:

$("#gantt").kendoGantt({
        dataSource: [
          {
              id: 1,
              orderId: 0,
              title: "Task1",
              start: new Date("2014/6/17 9:00"),
              end: new Date("2014/6/17 11:00"),
              expanded: true,
              parentId: null
          },
          {
              id: 2,
              orderId: 1,
              title: "Task2",
              start: new Date("2014/6/17 12:00"),
              end: new Date("2014/6/17 13:00"),
              parentId: 1
          }
        ],
        dependencies: [
          {
              id: 1,
              predecessorId: 1,
              successorId: 2,
              type: 1
          }
        ]
    });

Which part was wrong?

Thanks,
Liu

0
Liu
Top achievements
Rank 1
answered on 20 Dec 2017, 03:43 AM

HI,

I figure out that it need to add a 'summary'  to my dataSource, so  never mind that question.
Another question is that  i need to know  how to  add a header row to  ganttlst in order to group by my list,
just like yellow area in my attach.
That yellow row  just a simple label title, so i can't make it into a treegrid.
What should i do?

Thanks,
Liu

0
Alex Hajigeorgieva
Telerik team
answered on 20 Dec 2017, 06:52 AM
Hello, Liu,

Since you have questions regarding the Kendo UI Gantt, I have opened a new ticket on your behalf because this is the UI for ASP.NET MVC Grid forum. 

If you prefer to ask a question in the forums, you can check the existing ones here:

https://www.telerik.com/forums/kendo-ui/gantt

Kind Regards,
Alex Hajigeorgieva
Progress Telerik
Try our brand new, jQuery-free Angular components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
0
Anitha
Top achievements
Rank 1
Iron
answered on 18 Mar 2022, 07:34 PM | edited on 18 Mar 2022, 08:38 PM

Hello ,

We are upgrading Kendo UI  for ASP.NET MVC from 2017 to 2022.1.301.545. We use ASP.NET MVC 5. After the Kendo.mvc.dll is copied and stypes and script files updated, while running I get the exception error BC31429: 'Grid' is ambiguous because multiple kinds of members with this name exist in class 'Kendo.Mvc.UI.Fluent.WidgetFactory' How this can be solved?

 

Thanks, A

Tags
Grid
Asked by
Mathieu
Top achievements
Rank 1
Answers by
Atanas Korchev
Telerik team
Mathieu
Top achievements
Rank 1
Rosen
Telerik team
John
Top achievements
Rank 1
Liu
Top achievements
Rank 1
Alex Hajigeorgieva
Telerik team
Anitha
Top achievements
Rank 1
Iron
Share this question
or