Hello everyone, I'm currently working on a complex TreeView, with a flat data binding, and I have the necessity to pass to the backend the whole tree ordered "as is" after a drag and drop operation is performed:
I prepared a starting StackBlitz at: https://stackblitz.com/edit/angular-w8t3pg?file=app/app.component.ts
Here's what I'd like to happen:
1) user drags C above A, create an array (or modify the existing one (nodes)) like this:
[
{ id: 3, name: 'C', parent: null, isfather: true },
{ id: 5, name: 'D', parent: 3, isfather: true },
{ id: 6, name: 'E', parent: 5, isfather: false},
{ id: 4, name: 'F', parent: 5, isfather: false },
{ id: 2, name: 'A', parent: null, isfather: true },
{ id: 1, name: 'B', parent: 2, isfather: false },
{ id: 7, name: 'G', parent: null, isfather: true },
{ id: 8, name: 'H', parent: 7, isfather: false },
{ id: 9, name: 'J', parent: 7, isfather: false },
];
2) then, the user moves B inside E (E sees its flag isfather changed to true, whereas A to false since it doesn't have any child anymore)
[
{ id: 3, name: 'C', parent: null, isfather: true },
{ id: 5, name: 'D', parent: 3, isfather: true },
{ id: 6, name: 'E', parent: 5, isfather: true },
{ id: 1, name: 'B', parent: 5, isfather: false },
{ id: 4, name: 'F', parent: 5, isfather: false },
{ id: 2, name: 'A', parent: null, isfather: false },
{ id: 7, name: 'G', parent: null, isfather: true },
{ id: 8, name: 'H', parent: 7, isfather: false },
{ id: 9, name: 'J', parent: 7, isfather: false },
];
<kendo-treeview
#tree
gdArea="checklisttree"
[navigable]="false"
[nodes]="nodes"
kendoTreeViewFlatDataBinding
textField="id"
idField="id"
parentIdField="idlink"
kendoTreeViewExpandable
[expandedKeys]="expandedKeys"
expandBy="id"
kendoTreeViewDragAndDrop
kendoTreeViewDragAndDropEditing
(nodeDrop)="getNodesInOrder($event)"
(addItem)="log('addItem', $event)"
(removeItem)="log('removeItem', $event)"
kendoTreeViewSelectable
[(selectedKeys)]="selectedKeys"
(selectionChange)="nodeSelectionChangeHandler($event)"
>
<ng-template kendoTreeViewNodeTemplate let-dataItem>
{{ '(id = ' + dataItem.id + '), (title = ' + dataItem.title + ' )' }}
</ng-template>
<ng-template
kendoTreeViewDragClueTemplate
let-action="action"
let-sourceItem="sourceItem"
let-destinationItem="destinationItem"
let-text="text"
>
<span class="k-drag-status k-icon" [ngClass]="getDragStatus(action, sourceItem, destinationItem)"></span>
<span>{{ text }}</span>
</ng-template>
</kendo-treeview>
getNodesInOrder($ev? TreeitemDragEvent): void {
const rootNodes: any[] = (this.tree as any).editService.flatBinding.filterData; //list of the root elements
const nodes = []; // I'd like to use this to push the various children in order I miss how to do this with recursive function
rootNodes.forEach(node => {
node.dataItem.isfather = node.children.length > 0;
nodes.push(node.dataItem);
// recursive call here?
})
console.log(nodes);
}
Hello,
I want to mark the same date in all years. For example 1 January or 23 April to be marked in all years. Can you help me please?
Thank you!
]
How to change dates (click and drag corner of box) or move boxes (click and drag middle of box) in gantt chart if I am using kendo for Angular?
I know that it is possible with jQuery but didn't find how to do it for Angular.
HI
This demo shows that you can only insert one row at a time
https://www.telerik.com/kendo-angular-ui/components/grid/editing/editing-template-forms/
My case is diffrent.
I have a component that displys a grid for the currencies.
above the girid is "add" button. this is the senario :
1- the user should press add button to create new row in the grid
2- the user enter the name of the currency and all other attributes
3- then the user press add button once again to insert new row , and the repeat step 2 ,and repeat step 1 again
at the end, the user press "Save" button only one time to save all the records that he insered in the grid
IS this possible in kendo grid component
if yes, do you have any demo for this
thank you
How do you right align input when displayed, and left align input on focus?
Hello All,
We are using a kendo grid and which is having few locked columns and a few which are not locked. Since there is a constraint the width needs to be set for each column if there is a locked column, we are setting the width for each column, Which makes the grid header not look good in bigger displays. You can see in the below screenshot that after the last column, there is some empty space. In smaller screens, this won't occur since the width we set exceeds the viewport width. Is there a way we can make this responsive?
I have preloaded tree View and add node button. I have one text box to enter node name and tree drop down to select the parent node.
After entering node name and parent node, I will click on add node button. On click event it should add newly entered node under specific parent node.
Please let me know how to achieve this.
I have 10 items as a string array displaying using Kendo UI sortable and I have one treeView. I want to do drag and drop from that list to this treeview. As and when I drop item from list to treeview it should ask me to enter name of that node.(means node should be editable.)
EX: I have a list of items like site, building
And I have a treeview of many sites and building under different site. As and when I drag and drop building from list to treeview(under any site),it should as me to enter the name of building.
Please provide solution for the above scenario.
Since we want to use a pivot grid in our Angular application, the question arises when the next Kendo release with the Angular Pivot component will be released. We saw that Angular Pivot component will be released in 2022. But unfortunately there was still no release in 2022. Could you estimate when the next release with the Angular pivot component will come.
Best Regards
Ahmad Al Edlbi