Telerik Forums
Kendo UI for jQuery Forum
1 answer
435 views

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

Stefan
Telerik team
 answered on 27 Mar 2018
4 answers
457 views

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.


François
Top achievements
Rank 1
 answered on 27 Mar 2018
4 answers
1.2K+ views
Whenever a kendo grid row is reordered using drag and drop functionality, checkbox selections are not retained. The grid is reset to default. How can the checkbox selections be retained?
Tsvetina
Telerik team
 answered on 26 Mar 2018
3 answers
222 views

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

Dimitar
Telerik team
 answered on 26 Mar 2018
6 answers
1.1K+ views

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"}
]}

Boyan Dimitrov
Telerik team
 answered on 26 Mar 2018
4 answers
315 views
Hi,

I had a question about Splitter. Is it possible to create a splitter dynamically - I know that in theory this is possible.

But I wanted to find out about performance, and any other issues there may be.

Thanks

Uma
Svet
Telerik team
 answered on 26 Mar 2018
6 answers
1.2K+ views

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

 

 

 

Tayger
Top achievements
Rank 1
Iron
 answered on 24 Mar 2018
1 answer
136 views

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

Simon
Top achievements
Rank 1
 answered on 23 Mar 2018
5 answers
290 views
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.
Any ideas?

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

Viktor Tachev
Telerik team
 answered on 23 Mar 2018
2 answers
499 views

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 );
  }
 
}

Child Pane Component
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 );
  }
 
}

 

Svet
Telerik team
 answered on 23 Mar 2018
Narrow your results
Selected tags
Tags
+? more
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Rob
Top achievements
Rank 3
Iron
Iron
Iron
Atul
Top achievements
Rank 1
Iron
Iron
Iron
Alexander
Top achievements
Rank 1
Veteran
Iron
Serkan
Top achievements
Rank 1
Iron
Shawn
Top achievements
Rank 1
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?