Hi,
We have something like this in our development http://dojo.telerik.com/@Kenneth%20Long/IXuYi using library version Q1SP2.
When we moved to the newer library, the grid is not displaying, you can switch from the dojo link to test it. What is the problem?
I've searched around but I can't find a supported method of adding an array to the end of a DataSource that already contains data.
I have found that this works nicely: dataSource.data().push.apply(dataSource.data(), data);
The problem is that it starts to get really slow (in some cases I can have up to about 150,000 records.
I've seen this: $.merge(dataSource._pristineData, data);
But this method doesn't seem to let the DataSource know that new items have been added to the array. It's my understanding that jQuery fiddles around with some internal data of the appended to array. Is there a way to let the DataSource object know that it's array has been changed?
I'm only looking for the most performant way to add data to a Grid.
Hi,
How can I set the row height for each row to match the height of the GroupHeaderTemplate?
I've attached a screen shot of the issue.
Here is the scheduler configuration:
@(Html.Kendo().Scheduler<CalendarItemViewModel>()
.Name("scheduler")
.Date(Model.TimelineStart)
.StartTime(Model.TimelineStart)
.EndTime(Model.TimelineEnd)
.CurrentTimeMarker(false)
.MajorTick(1440)
.MinorTickCount(1)
.MajorTimeHeaderTemplate("")
.DateHeaderTemplate("<strong>#=kendo.toString(date, 'd')#</strong>")
.EventTemplate("<div class='eventItem' style='background-color:#=CalendarEntryTypeColor#;'>#=title#</div>")
.Views(views => views.TimelineMonthView(timeline =>
{
timeline.MajorTick(1440);
timeline.MinorTickCount(1);
timeline.StartTime(Model.TimelineStart);
timeline.EndTime(Model.TimelineEnd);
timeline.EventHeight(28);
timeline.ColumnWidth(20);
timeline.GroupHeaderTemplate("<div id='e#=value#' class='eventClassifier'>"
+ "# if (value == 0) { #"
+ "<br/><span class='active'>General</span><br/><br/>"
+ "# } else { #"
+ "<a class='active jslink' style='float:left;' onclick='viewEmployeeProfile(#=value#, \"#=text#\")'><span id='e#=value#FullName'>#=text#</span></a><br />"
+ "<span class='grey'>Rounds Since Last Visit:</span> <span id='e#=value#NumRoundsSinceLastVisit'></span><br />"
+ "<span class='grey'>Level:</span> <span id='e#=value#ClassifierLevelCode'></span>"
+ "<span class='grey'>Home WU:</span> <span id='e#=value#IsHomeWorkArea'></span><br />"
+ "<span class='grey'>Language:</span> <span id='e#=value#LanguageName'></span><br />"
+ "<span class='grey'>OOP:</span> <span id='e#=value#NumOutOfProvince'></span><br />"
+ "<span class='grey'>Coordinator:</span> <span id='e#=value#IsCoordinator'></span>"
+ "#}# </div>");
}))
.Timezone(Model.TimeZoneString)
.Group(group => group.Resources("EmployeeId").Orientation(SchedulerGroupOrientation.Vertical))
.Resources(resource =>
{
resource.Add(m => m.EmployeeId)
.Title(Resources.Employee)
.DataTextField("FullName")
.DataValueField("EmployeeId")
.DataSource(source => source.Read(read => read.Action("GetJsonCalendarClassifiers", "Classification").Data("filterClassifiers"))
.Events(ev => ev.Change("refreshScheduler")));
resource.Add(m => m.CalendarEntryTypeId)
.Title(Resources.Type)
.DataTextField("Description")
.DataValueField("CalendarEntryTypeId")
.DataColorField("Color")
.BindTo(Model.CalendarEntryTypes);
resource.Add(m => m.StatusId)
.Title(Resources.Status)
.DataTextField("Description")
.DataValueField("StatusId")
.DataSource(source => source.Read(read => read.Action("GetJsonCalendarStatuses", "Classification")));
})
.Events(events => events
.DataBinding("schedulerDataBinding")
.DataBound("schedulerDataBound")
.Edit("schedulerEdit")
.Save("schedulerSave")
.Navigate("schedulerDataBound")
)
.DataSource(d => d
.Model(m =>
{
m.Id(f => f.CalendarId);
m.Field(f => f.EmployeeId);
m.Field(f => f.CalendarEntryTypeId);
m.Field(f => f.CalendarEntryTypeCode);
m.Field(f => f.CalendarEntryGroup);
m.Field(f => f.StartTimezone).DefaultValue(Model.TimeZoneString);
m.Field(f => f.EndTimezone).DefaultValue(Model.TimeZoneString);
m.Field(f => f.Title).DefaultValue("");
m.Field(f => f.StatusId).DefaultValue(Constants.DefaultCalendarStatusId);
m.Field(f => f.WorkAreaRoundId).DefaultValue(Model.CurrentWorkAreaRound != null ? Model.CurrentWorkAreaRound.WorkAreaRoundId : 0);
m.Field(f => f.ClassificationWorkAreaId).DefaultValue(Model.SelectedClassificationWorkAreaId);
m.Field(f => f.Timezone).DefaultValue(Model.TimeZoneString);
m.RecurrenceId(f => f.RecurrenceId);
m.Field(f => f.IsAllDay).DefaultValue(true);
})
.Read("GetClassificationSchedule", "Classification", new { workAreaRoundId = Model.CurrentWorkAreaRound != null ? Model.CurrentWorkAreaRound.WorkAreaRoundId : 0, workAreaId = Model.SelectedClassificationWorkAreaId })
.Create("SaveClassificationScheduleItem", "Classification")
.Destroy("DeleteClassificationScheduleItem", "Classification")
.Update("SaveClassificationScheduleItem", "Classification")
.Events(e => e.Error("schedulerError"))
)
)
Thanks!
Hi
we have a requirement to show 100000 bars in a single chart, does kendo chart support it what is the overhead on performance..
What is the best way to show more than 90 K + data in a bar chart , i know about zoom option.
Regards,
Hitesh Taneja
Please see my below code in cshtml and controller
cshtml
--------------
@{
ViewBag.Title = "KendoGrid";
}
@using Kendo.Mvc.UI
<html>
<head>
<link href="~/Content/kendo.common.min.css" rel="stylesheet" />
<link href="~/Content/kendo.default.min.css" rel="stylesheet" />
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script src="~/Scripts/kendo.all.min.js"></script>
<title></title>
</head>
<body>
@(Html.Kendo().Grid<KendogridTestPoc.Models.MasterClient>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(o => o.MasterClientID).Width(110);
columns.Bound(o => o.MasterName).Width(130);
})
//.ToolBar(toolbar => toolbar.Create())
//.Editable(editable => editable.Mode(GridEditMode.PopUp)) // Use inline editing mode
.Sortable()
.Pageable()
.HtmlAttributes(new { style = "height:430px;" })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(100)
.Model(model => model.Id(p => p.MasterClientID))
.Read(read => read.Action("GettblMasterClients", "Home"))
)
)
</body>
</html>
Controller
------------------------
using Kendo.Mvc.Extensions;
using Kendo.Mvc.UI;
using KendogridTestPoc.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace KendogridTestPoc.Controllers
{
public class HomeController : Controller
{
private readonly List<MasterClient> masterClients;
public HomeController()
{
masterClients = new List<MasterClient>();
masterClients.AddRange(new MasterClient[] {
new MasterClient()
{
MasterClientID = 3001,
MasterName="TestFiserv"
},
new MasterClient()
{
MasterClientID = 3002,
MasterName="TestDefenders"
}
});
}
public ActionResult GettblMasterClients()
{
return Json(masterClients,JsonRequestBehavior.AllowGet);
}
public ActionResult Index()
{
return View();
}
public ActionResult About()
{
ViewBag.Message = "Your application description page.";
return View();
}
public ActionResult Contact()
{
ViewBag.Message = "Your contact page.";
return View();
}
public ActionResult KendoGrid()
{
MasterClient ms = new MasterClient();
ms.MasterClientID = 121;
ms.MasterName = "Test";
return View(ms);
}
}
}​​
Hello,
From my understanding, the "cancel" button currently is a function that not only closes the edit window, but deletes an event. Is there a way to just "close" a window without deleting or remove a event?
Please advise.

Hi
we show chart/graph with data as month, week, day wise aggregation, user can select date range criteria for which he/she needs to have the data.
On X Axis we show lables in format of "month/year", "start week/end week" for the data. I need to show label with asterisk '*' when the data is selected for partial month on X Axis.
Example : user selects date range from 10/10/2014 to 10/12/2014 - (10oct to 10 dec)
Here for us October and December are partial month as it will have only 10 days of data in chart/graph, while november is not considered as partial month.
Any kendo support available for this.
Regards,
Hitesh
I have the following multiselect:
<select kendo-multi-select id="manageCrewSelector" name="manageCrewSelector" ng-model="vm.crew.employeeIds" required
k-data-text-field="'fullName'"
k-data-value-field="'employeeId'"
k-data-source="vm.employeeList"
k-filter="'contains'"></select>
I also have a button that when clicked updates the multi select to select the new items selections:
vm.crew.employeeIds = getEmployeeIdsForProject(projectId);
I would expect this to work since angular has two way binding however it didnt​. Why?
So, I added the following:
var multiSelect = $('#manageCrewSelector').data('kendoMultiSelect');
multiSelect.value(vm.crew.employeeIds);​
Now I can see the items are selected when I scroll through the list however the multi select doesnt show that they are selected. Again why?
I am trying to piece together a grid example using the latest version of angular. I have tested other controls like the numeric textbox, so I'm happy that the overall kendo bindings are working, but anything that requires the view model to provide options I'm stuck with. The angular grid example uses $scope, this isn't used in current examples for angular, and if I try to include $scope, I get a JS error about not being able to instantiate the controller.
I've attached the key files of the example I'm trying to work through.
Hi,
I'm using a Kendu grid with the event "Edit-Popup not inline" and in the "OnEdit" function i want to open a different window- not the defult popup window.
I'm trying to use e.preventDefult() to hide the defult popup- but it doesn't work. i get the "undefined" exception.
What can i do to make it work properly?
Thanks in advance,
Sari