I am trying to create extension method for GridBoundColumnBuilder for setting aggregate cell for column and format it. The attempt is in following style (grid_ext_1.png).
My intent is to set dataSource.Aggregates for column to count sum of all items, and ClientFooterTemplate to perform formatting of aggregate cell.
Another intent is to reduce the whole code - as I have already bound property of class to column (in the GridColumnFactory), I do not want to write another method for setting aggregate item (in the DataSourceAggregateDescriptorFactory). I have ~40 columns in one grid and it is really hurts to write method for every column 2 times.
In the case of the attached code I have an exception "Ambigous Match Found". Due to head of stack trace:
in System.RuntimeType.GetPropertyImpl(String name, BindingFlags bindingAttr, Binder binder, Type returnType, Type[] types, ParameterModifier[] modifiers)
in System.Type.GetProperty(String name)
in Kendo.Mvc.Infrastructure.Implementation.Expressions.GroupDescriptorExpressionBuilder.<>c__DisplayClassc.<CreateProjectionMemberBindings>b__b(AggregateFunction f, Expression e)
in Kendo.Mvc.Extensions.EnumerableExtensions.<ZipIterator>d__7`3.MoveNext()
in System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
in System.Dynamic.Utils.CollectionExtensions.ToReadOnly[T](IEnumerable`1 enumerable)
in System.Linq.Expressions.Expression.MemberInit(NewExpression newExpression, IEnumerable`1 bindings)
in Kendo.Mvc.Infrastructure.Implementation.Expressions.GroupDescriptorExpressionBuilder.CreateProjectionInitExpression()
in Kendo.Mvc.Infrastructure.Implementation.Expressions.GroupDescriptorExpressionBuilder.CreateAggregateFunctionsProjectionMemberBinding()
in Kendo.Mvc.Infrastructure.Implementation.Expressions.QueryableAggregatesExpressionBuilder.<CreateMemberBindings>d__0.MoveNext()
in System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
in System.Dynamic.Utils.CollectionExtensions.ToReadOnly[T](IEnumerable`1 enumerable)
in System.Linq.Expressions.Expression.MemberInit(NewExpression newExpression, IEnumerable`1 bindings)
in Kendo.Mvc.Infrastructure.Implementation.Expressions.GroupDescriptorExpressionBuilder.CreateSelectBodyExpression()
in Kendo.Mvc.Infrastructure.Implementation.Expressions.GroupDescriptorExpressionBuilder.CreateSelectExpression()
in Kendo.Mvc.Infrastructure.Implementation.Expressions.GroupDescriptorExpressionBuilderBase.CreateQuery()
in Kendo.Mvc.Extensions.QueryableExtensions.Aggregate(IQueryable source, IEnumerable`1 aggregateFunctions)
in Kendo.Mvc.Extensions.QueryableExtensions.CreateDataSourceResult[TModel,TResult](IQueryable queryable, DataSourceRequest request, ModelStateDictionary modelState, Func`2 selector)
in Kendo.Mvc.Extensions.QueryableExtensions.ToDataSourceResult(IQueryable queryable, DataSourceRequest request, ModelStateDictionary modelState)
in Kendo.Mvc.Extensions.QueryableExtensions.ToDataSourceResult(IQueryable enumerable, DataSourceRequest request)
in Kendo.Mvc.UI.DataSource.Process(DataSourceRequest request, Boolean processData)
in Kendo.Mvc.UI.Grid`1.ProcessDataSource()
it seems that aggregates builder fails to get a property of class. But if I had an duplicate property name - I would find it at compilation time.
So, I have no idea what Kendo finds ambiguous.
Can you point out what I'm doing wrong? How to write an extension method which will satisfy my objectives correctly?
Hi,
When there is one diagram in the page like:
@(Html.Kendo().Diagram() .Name("diagram1") .Layout(l => l .Type(DiagramLayoutType.Tree) .Subtype(DiagramLayoutSubtype.Right) .HorizontalSeparation(30) .VerticalSeparation(20) ) ...........)But when there is another diagram:
@(Html.Kendo().Diagram() .Name("diagram2") ) .Layout(l => l .Type(DiagramLayoutType.Tree) .Subtype(DiagramLayoutSubtype.Down) .HorizontalSeparation(30) .VerticalSeparation(20) )first diagram renders also "tree down"...
So, what should I do?
Hi,
I have a view with a standalone datepicker (controller/index(DateTime? date))
@(Html.Kendo().DatePicker() .Name("datePicker") .Events(e => e.Change("change")) )Now I want to have a change event to go to the same page (controller/index(date = result of the datepicker)
function change() {//something}when i Integrate sortable with listview,I found that when editable,the textbox cannot focus with mouse,only can use tab focus
the listview like this:
@(Html.Kendo().ListView<txlcinfo.Web.Areas.Institute.Models.UserModel>()
.Name("AllUserView")
.TagName("div")
.ClientTemplateId("UserTemplate")
.DataSource(dataSource =>
{
dataSource.Create(create => create.Action("Users_Create", "Home"));
dataSource.Read(read => read.Action("Users_Read", "Home"));
dataSource.Destroy(destory => destory.Action("Delete_User", "Home"));
dataSource.Model(model => { model.Id("ID"); });
})
.Editable(edt=>edt.TemplateName("UserModelTemplate"))
)
@(Html.Kendo().Sortable()
.For("#AllUserView")
)
and the template like this :
@model txlcinfo.Web.Areas.Institute.Models.UserModel
<div class="product UserPanel list-view-container" style="width:240px;margin:5px;" data-bind="#:ID#" data-id="#:isSelected#" data-old-id="#:isSelected#">
<div class="row" style="margin:9px;margin-top:15px;">
<label for="Name" class="select-period">名字</label>
@(Html.EditorFor(p => p.Name))
<!-- ProductName validation message placeholder -->
<span data-for="Name" class="k-invalid-msg"></span>
</div>
<div class="row" style="margin:9px;">
<label for="Name" class="select-period">性别</label>
@(Html.Kendo().TextBoxFor(p => p.Male))
<!-- ProductName validation message placeholder -->
<span data-for="Male" class="k-invalid-msg"></span>
</div>
<div class="row" style="margin:9px;">
<label for="PhoneNum" class="select-period">电话</label>
@(Html.EditorFor(p => p.PhoneNum))
<!-- ProductName validation message placeholder -->
<span data-for="Name" class="k-invalid-msg"></span>
</div>
<div class="edit-buttons row" style="margin:10px;float:right;">
<a class="k-button k-button-icontext k-update-button" href="\\#"><span class="k-icon k-update"></span>保存</a>
<a class="k-button k-button-icontext k-cancel-button" href="\\#"><span class="k-icon k-cancel"></span>取消</a>
</div>
<div class="row" style="margin:5px;"></div>
</div>
the result is the textbox cannot focus with mouse ,only can focus with ‘tab' key?
We are implementing the Kendo Scheduler as part of a time attendance manager. While it works mostly as intended, the update code is cripplingly slow for larger data sets:
In our working example for a dataset of ~770 users, the schedule.view(schedule.view().name) call takes almost 3.5 seconds.
During this time the page is completely unresponsive and it's kinda ruining the UX.
Do you have any suggestions to refreshing the schedule, with or without calling "schedule.view(schedule.view().name)", which is more responsive?
Example code:
(function () {
var element, scheduler;
benchmark.measure("Trigger updateFilters", function () { element = $('#scheduler'); scheduler = element.data('kendoScheduler'); });
benchmark.measure("Trigger updateFilters", function () { element.show(); });
benchmark.measure("Trigger updateFilters", function () {
scheduler.dataSource.filter({
operator: function (user) {
var result = true;
// snip for brevity //
return result;
}
});
}, "scheduler.dataSource.filter()");
benchmark.measure("Trigger updateFilters", function () { scheduler.view(scheduler.view().name); });
}());
(benchmark is a helper class to test timings)
Example measurements are attached.

Hi,
Now I am creating a page with a few asp .net mvc components such as bar chart, pie chart etc. Now I want to filter all of the datasource's in these components after selecting a specific value from the set of values in the listview that are being displayed on the side of the page using the script given below.
function onChange(arg) { var selected = $.map(this.select(), function(item) { $("#select").html($(item).text()); }}Can someone show me how this is done using an example?
Thanks & Regards,
Adhip

I made an update of the UI for ASP.NET MVC. Now, in the tree view only the root is shown and no longer any child.
The view is as follows:
@(Html.Kendo().TreeView()
.Name("treeviewInner")
.BindTo((IEnumerable<TreeViewItemModel>)ViewBag.TreeViewContent)
)
Here is the code in the controller:
private List<TreeViewItemModel> GetTreeViewData()
{
var items = new List<TreeViewItemModel>()
{
new TreeViewItemModel()
{
Text = "0",
Items = new List<TreeViewItemModel>()
{
new TreeViewItemModel()
{
Text = "1"
}
}
}
};
return items;
}
public ActionResult TreeViewContent(int wbsHeaderId)
{
ViewBag.TreeViewContent = GetTreeViewData();
return PartialView();
}
Hi guys,
i have been trying to use kendo window to pop up when ever a user enters wrong credentials. But when the page load for the first time it pop ups.
I tryed to change the visibility to "false" and to "true". when visibility is set to false, the window does not show any more. when visibility is set to true, the dialog window shows when the page loads for the first time.
Here is the code that im using below...
<script> $(document).ready(function () { var myWindow = $("#Popdiv"), undo = $("#submit"); undo.click(function (e) { // e.preventDefault(); }); $("#okayButton").kendoButton({ click: function (e) { myWindow.data("kendoWindow").close(); } }); //$("#submit").click(function () { // ValidateUsertwo(); // }); function onClose() { undo.fadeIn(); } myWindow.kendoWindow({ width: 600, title: "Error", modal: true, iframe: true, actions: [ 'Pin', 'Close', 'Refresh' ], close: onClose, visible: true }).data("kendoWindow").center(); }); function ValidateUsertwo() { var ID = document.getElementById('<%:Html.IdFor(t => t.UserName) %>').value; var pass = document.getElementById('<%:Html.IdFor(t => t.Password) %>').value; if (ID == "") { myWindow.data("kendoWindow").open(); return false; } if (pass == "") { return false; } if ('@TempData["msg"]' != "") { myWindow.data("kendoWindow").open(); } } //$("#button").on("click", function (e) { // mywin.data("kendoWindow").close(); //}); </script>help will be appreciated
thanks

Version - 2016.3.914
I am experiencing a problem getting DDL with templates to render properly when used in an editor template, from a grid.
Example :
Model
public class WeightUnit{ public byte ID { get; set; } public string Code { get; set; } public string Description { get; set; }}public ActionResult WeightUnits_Read([DataSourceRequest]DataSourceRequest request){ IEnumerable<Inflight.ServiceModel.WeightUnit> results = svc.ListWeightUnits(); return Json(results.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);}<div id="weights" class="panel-group" style="padding-left:5px;"> @Html.Label("Unit", new { style = "width:80px;" }) @(Html.Kendo().DropDownList() .Name("WghtUnit_ID") .OptionLabel(Labels.PleaseSelect) .DataSource(source => { source.Custom() .ServerFiltering(false) .Type("aspnetmvc-ajax") .Transport(transport => { transport.Read("WeightUnits_Read", "Utility"); }) .Schema(schema => { schema.Data("Data") .Total("Total"); }); ; }) .DataTextField("Description") .ValueTemplate("#: data.Code # - #: data.Description #") .DataValueField("ID")) </div>Problem
When used in an EditorTemplate for adding/editing a record to a grid, the selected value is rendered as ' - undefined'
The exact same code works perfectly well in a basic view.
Am I doing something wrong ? I assumed that templates could be used in any scenario.
Mike
