Skip to content

Commit 3640045

Browse files
committed
Add how to hide editors for a given level
1 parent f693ebb commit 3640045

File tree

1 file changed

+108
-0
lines changed

1 file changed

+108
-0
lines changed
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
title: Hide edit fields on different levels
3+
page_title: Hide edit fields on different levels
4+
description: Hide edit fields on different levels
5+
---
6+
7+
# Hide edit fields on different levels
8+
9+
The example below demonstrates how to hide editors for different columns on different levels.
10+
11+
#### Example:
12+
13+
```html
14+
<div id="treelist"></div>
15+
16+
<style>
17+
.non-editable {
18+
visibility: hidden;
19+
}
20+
</style>
21+
22+
<script>
23+
$(document).ready(function () {
24+
var crudServiceBaseUrl = "http://demos.telerik.com/kendo-ui/service";
25+
26+
var dataSource = new kendo.data.TreeListDataSource({
27+
transport: {
28+
read: {
29+
url: crudServiceBaseUrl + "/EmployeeDirectory/All",
30+
dataType: "jsonp"
31+
},
32+
update: {
33+
url: crudServiceBaseUrl + "/EmployeeDirectory/Update",
34+
dataType: "jsonp"
35+
},
36+
destroy: {
37+
url: crudServiceBaseUrl + "/EmployeeDirectory/Destroy",
38+
dataType: "jsonp"
39+
},
40+
create: {
41+
url: crudServiceBaseUrl + "/EmployeeDirectory/Create",
42+
dataType: "jsonp"
43+
},
44+
parameterMap: function(options, operation) {
45+
if (operation !== "read" && options.models) {
46+
return {models: kendo.stringify(options.models)};
47+
}
48+
}
49+
},
50+
batch: true,
51+
schema: {
52+
model: {
53+
id: "EmployeeId",
54+
fields: {
55+
EmployeeId: { type: "number", editable: false, nullable: false },
56+
parentId: { field: "ReportsTo", nullable: true },
57+
FirstName: { validation: { required: true } },
58+
LastName: { validation: { required: true } },
59+
HireDate: { type: "date" },
60+
Phone: { type: "string" },
61+
HireDate: { type: "date" },
62+
BirthDate: { type: "date" },
63+
Extension: { type: "number", validation: { min: 0, required: true } },
64+
Position: { type: "string" }
65+
},
66+
expanded: true
67+
}
68+
}
69+
});
70+
71+
var hideEditorsForLevel = {
72+
0: ["Position", "HireDate", "Phone", "Extension"],
73+
1: ["Position"]
74+
};
75+
76+
$("#treelist").kendoTreeList({
77+
dataSource: dataSource,
78+
toolbar: [ "create" ],
79+
editable: true,
80+
height: 540,
81+
edit: function(e) {
82+
// determine level from model
83+
var level = this.dataSource.level(e.model);
84+
85+
// hide content in non-editable cells
86+
$(e.container).closest("tr")
87+
.find("[data-bind]").filter(function() {
88+
var name = $(this).attr("name");
89+
return $.inArray(name, hideEditorsForLevel[level]) > -1;
90+
}).closest("td>*").addClass("non-editable");
91+
},
92+
columns: [
93+
{ field: "FirstName", expandable: true, title: "First Name", width: 220 },
94+
{ field: "LastName", title: "Last Name", width: 100 },
95+
{ field: "Position" },
96+
{ field: "HireDate", title: "Hire Date", format: "{0:MMMM d, yyyy}" },
97+
{ field: "Phone", title: "Phone" },
98+
{ field: "Extension", title: "Ext", format: "{0:#}" },
99+
{ title: "Edit", command: [ "edit", "destroy" ], width: 250,
100+
attributes: {
101+
style: "text-align: center;"
102+
}
103+
}
104+
]
105+
});
106+
});
107+
</script>
108+
```

0 commit comments

Comments
 (0)