Telerik Forums
Kendo UI for jQuery Forum
1 answer
1.0K+ views

Morning,

I've been using the Kendo Grid for years and absolutely love it for what I can do with it, but every so often I get asked to stretch the functionality of what it can do,  I haven't found much documentation on this, but i'll try my best to give an example of what I've done, and to see if there is a better way of doing it..

I have a field in my Grid that is a string, with multiple "Tags" explicitly given in the dataSource in filterable.

    {
        "columnMenu": {
            "componentType": "modern"
        },
        "stickable": true,
        "field": "conditions",
        "filterable": {
            "enabled": true,
            "multi": true,
            "search": true,
            "dataSource": [
                {
                    "conditions": "TEST123"
                },
                {
                    "conditions": "TEST"
                },
                {
                    "conditions": "ABC"
                },
                {
                    "conditions": "DEF"
                }
            ]
        },
        "groupable": true,
        "aggregates": "count",
        "groupHeaderTemplate": "Conditions: #= value # (Count: #= count#)",
        "sortable": true,
        "title": "Conditions",
       

The data in the field is a string of comma separated tags, i.e.

TEST, ABC, DEF

I've updated the filter method on the Grid so that I can select multiple options in the filter menu, and it does a "contains" look up to match multiple hits.

filter: function(e){
	this.columns.forEach(function(f){
		if(e.field === f.field){
			if(f.filterable.hasOwnProperty('dataSource')){
				e.filter.filters.forEach(function(f){
					f.operator = "contains";
					e.filter.logic = "and";
				})
			}
		}
	})
},

I have two issues here.

1. I'm using contains, so if the tags are similar (TEST, TEST123), selecting TEST will show both TEST and TEST123 - which isn't ideal.

2. If I select an option from the filter menu, it doesn't remain checked if you were to go back into the filter menu again.

I've asked this question before and had some great help to get it to this point using: https://docs.telerik.com/kendo-ui/knowledge-base/grid-how-to-change-multi-checkbox-filter-to-contains but I'm wondering if there is a better way of achieving the functionality I'm looking for here with the grid.  I added square brackets to the tags to distinguish them ([TEST], [TEST123]) , but my users didn't like this change.

Is there a way to do this without using contains?

I'd also like to be able to see the selected option in the filter menu - I can find the checkbox through jQuery, but I cannot toggle it's state..

e.filter.filters.forEach(function(f){
	var checkbox = $(".k-filter-menu").find("input[value='"+f.value+"']");

	console.log(checkbox);												 
        checkbox.prop("checked", true).trigger("change");
	checkbox.attr("checked", true).trigger("change");

	f.operator = "contains";
	e.filter.logic = "and";
})

Thanks for your help,

Matt

Martin
Telerik team
 answered on 05 Feb 2024
3 answers
875 views

There is an issue with the Grid

  • when all columns have a width defined, and
  • when the total of all column widths is less than the total width of the grid 
  • will initially have the extra width distributed to them (good - not an issue)
  • but when an attempt to resize a column is made, 1) every column other than the one being resized will resize to the width defined in the configuration AND 2) the column being resized will resize to take up the space left behind by the other columns becoming smaller.

Configuration for it to happen appears to be

  • Resizing enabled
  • Scrolling enabled
  • Each column has a width defined, adding to a total width smaller than the width of the Grid's DOM element

The scenario is

  1. Open the grid
  2. Resize a column

Impact
Columns lose their distributed widths and the column being resized jumps away from the cursor.

An example is here:

http://dojo.telerik.com/eYUdE

Try resize the first column, you will observe the resized column growing in width and other columns losing their distributed widths. This leaves the cursor indicating an incorrect resize position.

 

Is there any chance this could be fixed / a work around be advised? Having the distributed column widths is this circumstance is good, but the behavior on resize is undesirable.

Jens Anders
Top achievements
Rank 1
Iron
 updated answer on 01 Feb 2024
0 answers
90 views

Having problems when using the showColumn() hideColumn() function for grids:

 

Why does hideColumn() function on grid scrunch up the width when enabling it?

Then when I check the checkbox to hide the first row:

It seems to scrunch the other rows to the LEFT? You demo in the DOJO doesn't do this... I was wondering if this is because I am using a hierarchical grid?


       function toggleEditing(e){
         
          var hideColumn = $(e.target).prop("checked");
          var grid = $("#grid").data("kendoGrid");
          if(hideColumn){
            grid.hideColumn(0);
          }
          else {
            grid.showColumn(0);
          }
        }

See  my Kendo UI Dojo code for behavior:
https://dojo.telerik.com/UmAgoDEs/2

Thanks!

George

George
Top achievements
Rank 3
Bronze
Bronze
Iron
 updated question on 30 Jan 2024
1 answer
91 views

  Hi

I'm using a kendoListView and a kendoPager like this :

$("#pagerLstArticle").kendoPager({
        dataSource: articles,
        pageSizes: [12, 24, 36, 48],
        messages: {
            display: "Articles {0} à {1} sur {2}"
        },
    });

I would like to adap the  kendoPager pageSizes depending on differents panels displayed or not on the screen

I can manage the kendoListView page size easily but for the kendoPager I don't know

How can I do this ?

Thank you

Isabelle

Martin
Telerik team
 answered on 26 Jan 2024
1 answer
96 views

Hi!! I'm having an issue with Kendo UI JQuery.

I'm using the grid, and I have my data source defined with schema inside. All the schema fields have the property editable in false.

At some point, I need to change some of them to editable true, but I'm not able to do it so far.

I tried getting the data from the grid and updating the Datasource object manually and after that read the Datasource and refresh the grid, but is not working.

Also, try setting a completely new Datasource, and after that read the Datasource and refresh the grid, but is not working.

Also, try destroying the grid a generating a new one, but the grid never refreshes and the editable continues in false.

 

Neli
Telerik team
 answered on 25 Jan 2024
1 answer
241 views
I've been trying to update from an older version 2019.3.1114 to a newer version, but from 2020.1.114, which is the next on the list that's not internal https://www.npmjs.com/package/@progress/kendo-ui?activeTab=versions, an onwards, I get the same error

kendoUpload is not a function.
RIght now I'm just trying to upgrade to the newest version but regardless I still get the same error. It sets some other kendo stuff on
$('files') as you can see from the screenshot, (kendoAddClass, kendoAnimate etc.) but not kendoUpload





On 
https://docs.telerik.com/kendo-ui/controls/upload/get-started
It says I should make the "files" input which I have
and it says I should call kendoUpload on files which I'm trying to but it doesn't exist
I thought it was a timing issue so I put it into a setTimeout, but it's still not there

Looking at 
https://docs.telerik.com/kendo-ui/backwards-compatibility/2020-backward-compatibility
There's nothing that suggests that kendoUpload should break or act different from 2019 to 2020 versions as far as I can see.


Is there something else I'm missing? Do I need to activate it somehow? I'm loading both kendo.all.js and kendo.upload.js, I tried with just all.js first.
Rasmus
Top achievements
Rank 1
Iron
 answered on 25 Jan 2024
0 answers
97 views
I've been searching through the forum for an example of a many-to-many example in dojo and thus far I've been unsuccessful.  I've seen a couple of questions from 6-8 years ago, but nothing recent to tell me that it is possible.  My desire is that given a proper datasource representing objects that have multiple parents and/or children that a relationship diagram can be created.  I have a single parent orgchart working just fine and it works great because I don't have to set positions for the elements or set connectors.  From my limited searching and reading on Diagrams I'm pretty sure I can eventually figure out how to get one working, but I believe it would require me to explicitly position each element as well as create and position connectors.  If I'm wrong, a working example would work wonders for my understanding.
Martin
Top achievements
Rank 1
 asked on 24 Jan 2024
0 answers
71 views
Good morning,
I have a problem with the scheduler and its vertical lines in the header and table.
As you can see, the lines are offset by some fraction of a millimeter. Nothing in the dimensions has been changed, the scheduler loads itself in this form. Trying to resize the cell doesn't change anything.



Sometimes it happens from the very beginning, sometimes only at a certain point do these lines stop being in the right place.



I see the same issue on your pages



so my question is whether there is any way to prevent this, because when there are many columns, the last borders are seriously damaged as you can see:



n/a
Top achievements
Rank 1
 asked on 24 Jan 2024
1 answer
182 views

Since printing from the scheduler uses the current view, I was would like to make the view be 2 months.

Am trying to show multiple projects and only 30 days worth isn't quite doing it.

SIMILARLY, 

if I'm in near the end of the month, showing the Timeline Month view only shows me a few days into the future - I don't care about past days.
Is there a way to set the STARTING DATE in a month view?
IF SO, perhaps specifying an ENDING DATE is the answer to my first question (Start + 60).

 

Thx
Jaymer...

Martin
Telerik team
 answered on 24 Jan 2024
1 answer
80 views

Hello,

 

We have a grid with a default grouping applied to it, and are trying to persist the expanded groups through a read operation (remote datasource).

 

We have been successful in persisting them through some operations using the following code:

function getExpandedGroups() {
    expandedGroups = [];
    try {
        let groupRows = $(".k-grouping-row");
        for (let i = 0; i < groupRows.length; i++) {
            let e = groupRows[i];
            let expanded = e.children[0]["ariaExpanded"];
            if (expanded === "true") {
                let groupName = $(e).find(".k-reset").text();
                let slicePos = groupName.lastIndexOf(" (");
                groupName = groupName.slice(0, slicePos);
                expandedGroups.push(groupName);
            }
        }
    }
    catch { }
    return expandedGroups;
}

function restoreExpandedGroups() {
    try {
        groupRows = $(".k-grouping-row");
        for (let i = 0; i < groupRows.length; i++) {
            let e = groupRows[i];
            let groupName = $(e).find(".k-reset").text();
            let slicePos = groupName.lastIndexOf(" (");
            groupName = groupName.slice(0, slicePos);
            if (expandedGroups.includes(groupName)) {
                attachmentTable.expandGroup(e);
            }
        }
    }
    catch { }
}

which works fine if our code calls the read event, since we can execute it before and after eg.

    let expandedGroups = getExpandedGroups();
    attachmentTable.dataSource.read().then(function () {    
        restoreExpandedGroups(expandedGroups);
    });

however, when we use any of the grid functionality like sorting on a column, there doesn't seem to be any events that we can subscribe to that occur after the grid sets the groups back to their collapsed state, and we aren't able to persist the grouping in the same way.

 

Are there any potential workarounds for this issue?

 

Thanks

 

Regards,

Will Douglas

 
Neli
Telerik team
 answered on 22 Jan 2024
Narrow your results
Selected tags
Tags
+? more
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Will
Top achievements
Rank 2
Iron
Motti
Top achievements
Rank 1
Iron
Hester
Top achievements
Rank 1
Iron
Bob
Top achievements
Rank 3
Iron
Iron
Veteran
Thomas
Top achievements
Rank 2
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?