In Kendo Grid it is possible to show/hide buttons in command column conditionally.
How can I achieve that in TreeList?
command: [
{
imageClass: "k-i-info",
name: "details",
text: "Details",
visible: function (dataItem) { return dataItem.LastName.charAt(0) !== "D" }
}
]
Hi,
I'm trying to avoid dragging column in treelist to very first position, since it's kind of checkbox column and must be the first all the time. I wanted to handle columnReorder event (which i handle anyway) and cancel it, but this approach simply does not work.
Something like
if (e.newIndex === 0)
{e.preventDefault();}
Have you got any tips, what to try next, please?
Regards, Jaroslav
I have a TreeList and a connected ContextMenu. The context menu shows correctly the first time only when clicking on a TreeList row. After that however, no matter where I right-click on the page, the context menu is displayed.
@(Html.Kendo().ContextMenu() .Name("orgtreemenu") .Target("#OrganizationTreeMaintenance") .Orientation(ContextMenuOrientation.Vertical) .Filter(".k-grid-content table tbody tr[role='row']") .Events(e => e .Open("orgContextMenuOpen") .Select("orgTreemenuSelect") ) .Items(items => { items.Add() .Text("Add Organization") .HtmlAttributes(new { @id = "addorgaction" }) .Enabled(true); items.Add() .Text("Edit Name") .HtmlAttributes(new { @id = "editorgnameaction" }) .Enabled(true); items.Add() .Text("Delete Organization") .HtmlAttributes(new { @id = "deleteorgaction" }) .Enabled(true); items.Add() .Text("Move Organization") .HtmlAttributes(new { @id = "moveorgaction" }) .Enabled(false); }))
@(Html.Kendo().TreeList<UserStatViewModel>()
.Name("OrganizationTreeMaintenance")
.Columns(columns =>
{
columns.Add().Field(e => e.OrganizationName).Width(300);
columns.Add().Field(e => e.OrganizationId).Hidden(true);
columns.Add().Field(e => e.TotalUserCount).Title("Users");
columns.Add().Field(e => e.TotalDeviceCount).Title("Devices");
columns.Add().Field(e => e.LicensedUserCount).Title("Licenses");
})
.Sortable()
.HtmlAttributes(new { style = "height:500px;" })
.Events(e => e
.DataBound("onDataBoundLicenseTree"))
.DataSource(dataSource => dataSource
.Read(read => read.Action("GetOrgLicenseDetails", "home"))
.ServerOperation(false)
.Model(m =>
{
m.Id(f => f.OrganizationId);
m.ParentId(f => f.ParentOrgId).DefaultValue(0);
// m.Expanded(true);
m.Field(f => f.OrganizationName);
m.Field(f => f.TotalDeviceCount);
m.Field(f => f.ParentOrgId);
})
))
I have tried modifying the Filter on the context menu to no avail. Hoping someone can see something obvious.
Thanks and regards,
Eric Katz
Hi there,
I would like to use the MultiSelect to set the value of a cell in a TreeList.
My code almost works, but once the MultiSelect closes the values displayed in the grid are not what I expected.
I tried using a template to display selected values, but it doesn't look right.
Here is a dojo link https://dojo.telerik.com/OdAFErap/11 and below the code of that dojo
Thanks in advance,
<!DOCTYPE html>
<html>
<head>
<base href="https://demos.telerik.com/kendo-ui/treelist/local-data-binding">
<style>html { font-size: 14px; font-family: Arial, Helvetica, sans-serif; }</style>
<title></title>
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2021.2.616/styles/kendo.default-v2.min.css" />
<script src="https://kendo.cdn.telerik.com/2021.2.616/js/jquery.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2021.2.616/js/kendo.all.min.js"></script>
</head>
<body>
<div id="example">
<div id="treelist"></div>
<script type="text/kendo" id="alertsTemplate">
# if (Alerts) { #
<ul>
# for(var i = 0; i< Alerts.length; i++){ #
<li>#: Alerts[i].name #</li>
# } #
</ul>
# } #
</script>
<script>
$(document).ready(function () {
var AlertsList = [
{ code: '9', name: 'Black' },
{ code: '5', name: 'Red' },
{ code: '5', name: 'Yello' },
{ code: '3', name: 'Blue' },
{ code: '1', name: 'Green' }
];
var alertsEditor = (container, options) => {
$('<input name="Alerts">')
.appendTo(container)
.kendoMultiSelect({
dataValueField: "code",
dataTextField: "name",
dataSource: AlertsList
});
};
var dataSource = new kendo.data.TreeListDataSource({
data: [
{ id: 1, Name: "Daryl Sweeney", Alerts: null, parentId: null },
{ id: 2, Name: "Guy Wooten", Alerts: null, parentId: 1 },
{ id: 32, Name: "Buffy Weber", Alerts: null, parentId: 2 },
{ id: 11, Name: "Hyacinth Hood", Alerts: null, parentId: 32 },
{ id: 60, Name: "Akeem Carr", Alerts: null, parentId: 11 },
{ id: 78, Name: "Rinah Simon", Alerts: null, parentId: 11 },
{ id: 42, Name: "Gage Daniels", Alerts: null, parentId: 32 },
{ id: 43, Name: "Constance Vazquez", Alerts: null, parentId: 32 },
{ id: 46, Name: "Darrel Solis", Alerts: null, parentId: 43 },
{ id: 47, Name: "Brian Yang", Alerts: null, parentId: 46 },
{ id: 50, Name: "Lillian Bradshaw", Alerts: null, parentId: 46 },
{ id: 51, Name: "Christian Palmer", Alerts: null, parentId: 46 },
{ id: 55, Name: "Summer Mosley", Alerts: null, parentId: 46 },
{ id: 56, Name: "Barry Ayers", Alerts: null, parentId: 46 },
{ id: 59, Name: "Keiko Espinoza", Alerts: null, parentId: 46 },
{ id: 61, Name: "Candace Pickett", Alerts: null, parentId: 46 }
],
schema: {
model: {
id: "id",
expanded: true,
fields: {
Name: { type: "string", editable: false },
Alerts: { type: "string", editable: true }
}
}
}
});
$("#treelist").kendoTreeList({
dataSource: dataSource,
height: 540,
batch: true,
editable: "inline",
columns: [
"Name",
{
field: "Alerts",
editor: alertsEditor,
template: $("#alertsTemplate").html()
},
{ command: ["edit"] }
]
});
});
</script>
</div>
</body>
</html>
Hello,
I have treelists with two levels of items (titles and positions). The titles can be rearranged via drag&drop. Dragging a title onto another title changes the order of titles. Positions can both be dragged under the same title but also to an other title.
Examples:
To do this (see code in attachment) I manipulate the title field and the parentId of the datasource. This worked fine as long as I dirctly saved items that were added to the list. But now I have to use batch save.
Now when I add a new title to the list and add or rearrange positions to that title or rearrange titles via drag&drop before saving the affectet titles and positions are attached to wrong parent items, sometimes items get duplicated. Doing the same thing after saving works as intended.
I assume the reason for this is that new items have an Id of 0 before saving.
I see that it is possible to rearrange items in treelists via drag & drop in your demos without manipulating these fields manually. But I don't see how can do this and get the same results as in the examples above. Could you please help me figure this out?
Note: in the attached files I have included sampledata as local data. In the project we bind to remote data. Not sure if this affects the beavior