I have a ASP.NET WebAPI service that returns a list of resources 50 at a time. I have over a million records and cannot return all rows at once. I would like to use the Kendo UI Grid (latest jQuery version) with virtual scrolling enabled. I do not want people to have to hit next, next, next in order to see more data.
I am stuck at how to implement this. Is there an example of virtual scrolling with a server-paged datasource? I believe I need a custom transport method and could really use an example to get me started.
Thank you,
Alex
Hello,
I use the following code to format the text if it is too long.
function createShape(options) {
var shapeOptions = {
editable: false,
selectable: false,
id: options.id,
x: options.positionX || 0,
y: options.positionY || 0,
width: options.width || 200,
height: options.height || 50,
type: options.type,
path: options.path || undefined,
content: {
text: options.textData || undefined,
color: '#fff',
fontSize: 15
},
fill: options.fillColor || '#0088CC',
stroke: options.strokeColor || '#0088CC',
};
var shape = new kendo.dataviz.diagram.Shape(shapeOptions);
var texts = options.textData.split(" ");
for (var i = 0; i < texts.length; i++) {
shape.visual.append(new kendo.dataviz.diagram.TextBlock({
text: texts[i],
color: "#fff"
}));
}
shape.visual.reflow();
return shape;
}
I would like to be able to use the method : reflow() afterwards; so that the words of the text place this correctly. Can you tell me how to do that? Thank you for your help.
Hello,
I have a treeview that implements load on demand which is working fine for me. I use the treeview.append() method to append children of the given node.
But strangely, in some scenarios the checkbox behaviour is not proper. I have set checkChildren: true in my code.
A scenario to reproduce this is,
check a node in the root level of the tree.
Expand two levels down in the tree.
Uncheck the root level node.
Expand some other node at level two belonging to the root level node unchecked in previous step,
the nodes still seem to be checked even though their parent node is unchecked.
Any help in this regard would be higly appreciated.
Thanks,
Niranjan
Hi,
We are currently evaluating the Kendo UI javascript Grid. We`d like to bind it to a datasource populated from a remote rest service. The json returned will be similar to the json at the bottom of this post. We would like the grid to bind to the stock array but not the summary but would like the summary accessible from the datasource.
I`ve tried calling the rest service from jquery then populating the datasource using the array but this seems slower then binding the datasource to the rest service directly.
Below is an example of what we`d like to do
Many thanks
Darran
var dataSource = new kendo.data.DataSource({
transport: {
read: {
url: "/warehouse/report",
dataType: "json"
}
},
schema: {
data: "breaks",
total: function(response) {
return $(response.breaks).length;
}
},
groupable: true,
sortable: true,
pageSize: 100,
page:1
});
$(gridId).kendoGrid({
dataSource: dataSource.breaks, //How do we bind to the breaks only???
selectable: "multiple cell",
allowCopy: true,
columns: columnDefinitions(),
columnMenu: true,
filterable: true,
sortable: {
mode: "single",
allowUnsort: false
},
pageable: {
refresh: true,
pageSizes: true,
buttonCount: 5
},
groupable: true
});
Example Json:
{summary{colour:red,size:10},
stock:[{name:"name1",type:"type1"},
{name:"name2",type:"type2"},
{name:"name3",type:"type3"}
]}
Hello
I've just upgraded from KendoUI v2017.3.913 to KendoUI v2018.1.221 and had some not nice visual changes in kendoDialog and kendoConfirm.
See attachment:
- KendoUI v2017_3_13.png : How it was and how I would like to have it again
- KendoUI v2018_1_221.png : Screwed up in latest KendoUI version
Two unwanted things in latest release:
1. Pressed button, ignoring content
2. Unwanted grey bar at the bottom of the dialog (same bar with title activated)
-> I have the exactly same problem in kendoDialog and kendoConfirm.
To point 1:
Of course it works in your widget samples, so I made a standalone sample (outside from my project). The button appears but is not fully visible. I have the fully working code here:
<!DOCTYPE html>
<html lang=
"en"
>
<head>
<meta charset=
"UTF-8"
>
<!-- Telerik Framework -->
<link rel=
"stylesheet"
href=
"http://kendo.cdn.telerik.com/2018.1.221/styles/kendo.common.min.css"
/>
<link rel=
"stylesheet"
href=
"http://kendo.cdn.telerik.com/2018.1.221/styles/kendo.blueopal.min.css"
/>
<script src=
"http://kendo.cdn.telerik.com/2018.1.221/js/jquery.min.js"
></script>
<script src=
"http://kendo.cdn.telerik.com/2018.1.221/js/kendo.all.min.js"
></script>
<!-- Font Awesome -->
<script defer src=
"https://use.fontawesome.com/releases/v5.0.6/js/all.js"
></script>
<style type=
"text/css"
>
.green {
color:
#208e14;
}
</style>
<script>
$(document).ready(
function
() {
$(
"#dialog"
).kendoDialog({
title:
false
,
width: 900,
height: 400,
closable:
false
,
buttonLayout:
"normal"
,
actions: [{
text:
"<i class='fas fa-check green' style='font-size: 18px; width: 30px;'></i>"
,
action:
function
(e){
// e.sender is a reference to the dialog widget object
alert(
"OK action was clicked"
);
// Returning false will prevent the closing of the dialog
return
true
;
},
}]
});
});
</script>
</head>
<body>
<div id=
"dialog"
></div>
</body>
</html>
The fact the button is pressed in my project is a problem I have to find but I don't understand why the button is not centered/fully visible in the code above.
To point 2 (grey bar):
I've checked the API documentation of kendoDialog and kendoConfirm how to get rid off that grey bar but couldn't find something. If I wanted a grey bar I would place it by myself. So I don't understand why Telerik changed the layout that way
The question here is: How can I get rid off that unwanted grey bar at the bottom (probably same way as on top with active title).
Regards
Hello,
I have a use case where I want to change the event function (_dialogActionOK, _dialogInitOpen, _dialogOpen) called by the dialog window runtime.
$('#dialog').kendoDialog({
...
actions: [
{ text: 'Cancel'},
{ text: 'OK', primary: true, action: function(e) { _dialogActionOK(); } }
],
initOpen: function (e) { _dialogInitOpen(); },
open: function (e) { _dialogOpen(); }
What is the simplest way to change the functions called runtime?
$('#dialog').initOpen( function(e) { newMethod(); }) ?
Thanks for the help
I have a calculated non editable cell bound to a datasource model. While editing the cell value is calculated, the new value is reflected in the model but does not render to the screen.
export
function
init(columns: any) {
var
ds =
new
nkfDataSources.FilterByJobQuickEntryDistribution();
ds.group = { field:
"PropertyName"
};
grid = $(
"#jobQuickEntryDistributionGrid"
).kendoGrid({
columns: columns,
groupable:
false
,
pageable:
true
,
sortable:
true
,
filterable:
true
,
toolbar: kendo.template($(
"#grid_jobQuickEntryDistribution_toolbar"
).html()),
dataSource: ds.get(onGridparameterMap),
editable:
true
,
edit:
function
(e) {
e.model.unbind(
"change"
, model_change).bind(
"change"
, model_change);
}
}).data(
"kendoGrid"
);
}
function
model_change(e) {
var
model =
this
;
model.NetFee = nkfCommon.Calculate.netFee(
model.GrossFee,
nkfCommon.Calculate.departmentOffset(model.GrossFee, model.DepartmentOffset),
nkfCommon.Calculate.expenses(model.ClientReimbursedExpenses, model.NonClientReimbursedExpenses, model.DirectBilledExpenses));
}
var
columns = [
{ field:
"AppraiserName"
, title:
"@Resources.NGage.JobQuickEntryResource.AppraiserNameField"
, width:
"18%"
},
{ field:
"RoleTypeDescription"
, title:
"@Resources.NGage.JobQuickEntryResource.RoleTypeDescriptionField"
, width:
"17%"
},
{ field:
"GrossFee"
, title:
"@Resources.NGage.JobQuickEntryResource.GrossFeeField"
, format:
"{0:c}"
, width:
"10%"
, attributes: { style:
"text-align:right"
} },
{ field:
"DepartmentOffset"
, title:
"@Resources.NGage.JobQuickEntryResource.DepartmentOffsetField"
, format:
"{0:p5}"
, width:
"10%"
, attributes: { style:
"text-align:right"
} },
{ field:
"ClientReimbursedExpenses"
, title:
"@Resources.NGage.JobQuickEntryResource.ClientReimbursedExpensesField"
, format:
"{0:c}"
, width:
"10%"
, attributes: { style:
"text-align:right"
} },
{ field:
"NonClientReimbursedExpenses"
, title:
"@Resources.NGage.JobQuickEntryResource.NonClientReimbursedExpensesField"
, format:
"{0:c}"
, width:
"10%"
, attributes: { style:
"text-align:right"
} },
{ field:
"DirectBilledExpenses"
, title:
"@Resources.NGage.JobQuickEntryResource.DepartmentOffsetField"
, format:
"{0:c}"
, width:
"10%"
, attributes: { style:
"text-align:right"
} },
{
field:
"NetFee"
,
title:
"@Resources.NGage.JobQuickEntryResource.NetFeeField"
,
format:
"{0:c}"
,
width:
"10%"
,
attributes: { style:
"text-align:right"
},
footerTemplate:
"<span style='float:right'>#= kendo.toString(@ViewBag.JobTeamDistributionAmount, 'c2')# </span>"
},
{ field:
""
, title:
" "
, width:
'6%'
, template:
"<a href='/JobQuickEntry/Edit/#: Id #' class='row-link-padding' style='padding-right:0; padding-left:0' >@Resources.MessageResources.EditField</a> "
, editable:
false
},
];
Regards
Floyd
I'm trying to implement a Kendo splitter pane with dynamically allocated number of panes in Angular 2. I have the kendo-splitter element in the parent component but unless I remove it the child component doesn't get rendered?
Parent Splitter Component
import { Component, OnInit } from '@angular/core';
import { BrxDelta } from '../model/BrxDelta';
@Component({
selector: 'app-all-deltas',
template: `<
kendo-splitter
orientation
=
"vertical"
style
=
"height: 340px;"
>
<
app-brx-delta
*
ngFor
=
"let b of brxDeltas"
[brxDelta]="b"></
app-brx-delta
>
</
kendo-splitter
>`,
styleUrls: ['all-deltas.component.scss']
})
export class AllDeltasComponent implements OnInit {
brxDeltas: BrxDelta[];
constructor() {
this.brxDeltas = [
new BrxDelta("DELTA1"),
new BrxDelta("DELTA2")
];
}
ngOnInit() {
console.log("BrxTableListComponent init");
console.log( this.brxDeltas );
}
}
import { Component, OnInit, Input} from '@angular/core';
import { BrxDelta } from '../model/BrxDelta';
@Component({
selector: 'app-brx-delta',
template: `<
kendo-splitter-pane
size
=
"100px"
>
<
div
class
=
"pane-content"
>
<
h3
>{{brxDelta.deltaName}}</
h3
>
</
div
>
</
kendo-splitter-pane
>
`,
styleUrls: ['brx-delta.component.scss']
})
export class BrxDeltaComponent implements OnInit {
@Input('brxDelta') brxDelta:BrxDelta;
ngOnInit() {
console.log( this.brxDelta );
}
}