Skip to content

Commit fc04bf4

Browse files
Merge branch 'development' into 'master'
Merged development to master using Automation See merge request content/asp.netmvc-docs!1199
2 parents 5114ad2 + 58012a5 commit fc04bf4

File tree

61 files changed

+1529
-111
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+1529
-111
lines changed

aspnetmvc-toc.html

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -933,6 +933,9 @@
933933
</li>
934934
<li>
935935
<a href="/aspnetmvc/gantt/Resource-Allocation-View">Resource Allocation View</a>
936+
</li>
937+
<li>
938+
<a href="/aspnetmvc/gantt/histogramview">Resource Histogram View</a>
936939
</li>
937940
<li>
938941
<a href="/aspnetmvc/gantt/editing">Editing</a>
@@ -963,6 +966,9 @@
963966
</li>
964967
<li>
965968
<a href="/aspnetmvc/gantt/task-scheduling-modes">Task Scheduling Modes</a>
969+
</li>
970+
<li>
971+
<a href="/aspnetmvc/gantt/Unscheduled-Tasks">Unscheduled Tasks</a>
966972
</li>
967973
<li>
968974
<a href="/aspnetmvc/gantt/context-menu">Context Menu</a>
@@ -1676,7 +1682,7 @@
16761682
<a href="/aspnetmvc/pivotclient/advanced-filtering">Advanced Filtering</a>
16771683
</li>
16781684
<li>
1679-
<a href="/aspnetmvc/pivotclient/member-editor-paging">Member Editor Paging</a>
1685+
<a href="/aspnetmvc/pivotclient/member-editor">Member Editor</a>
16801686
</li>
16811687
<li>
16821688
<a href="/aspnetmvc/pivotclient/toggle-axis">Toggle Axis</a>
@@ -1963,7 +1969,7 @@
19631969
<li><a href="/aspnetmvc/pivotgrid/grandtotal-hiding">GrandTotal Hiding</a></li>
19641970
<li><a href="/aspnetmvc/pivotgrid/advanced-filtering">Advanced Filtering</a></li>
19651971
<li><a href="/aspnetmvc/pivotgrid/paging">Paging</a></li>
1966-
<li><a href="/aspnetmvc/pivotgrid/member-editor-paging">Member Editor Paging</a></li>
1972+
<li><a href="/aspnetmvc/pivotgrid/member-editor">Member Editor</a></li>
19671973
<li><a href="/aspnetmvc/pivotgrid/frozenheader">Frozen Header</a></li>
19681974
<li><a href="/aspnetmvc/pivotgrid/drillthrough">DrillThrough</a></li>
19691975
<li><a href="/aspnetmvc/pivotgrid/column-resizing">Column Resizing</a></li>
@@ -2193,6 +2199,20 @@
21932199
</li>
21942200
</ul>
21952201
</li>
2202+
<li>
2203+
ReportDesigner
2204+
<ul>
2205+
<li>
2206+
<a href="/aspnetmvc/reportdesigner/overview">Overview</a>
2207+
</li>
2208+
<li>
2209+
<a href="/aspnetmvc/reportdesigner/getting-started">Getting Started</a>
2210+
</li>
2211+
<li>
2212+
<a href="/aspnetmvc/reportdesigner/Dependencies">Dependencies</a>
2213+
</li>
2214+
</ul>
2215+
</li>
21962216
<li>
21972217
ReportWriter
21982218
<ul>
@@ -3100,6 +3120,9 @@
31003120
<li>
31013121
Release Notes
31023122
<ul>
3123+
<li>
3124+
<a href="/aspnetmvc/release-notes/v16.3.0.21">v16.3.0.21</a>
3125+
</li>
31033126
<li>
31043127
<a href="/aspnetmvc/release-notes/v16.3.0.17">v16.3.0.17</a>
31053128
</li>

aspnetmvc/FileExplorer/How-To.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,7 +1211,7 @@ In this FTP application, we have provided “FTPFileOperationController” file,
12111211

12121212
**Step 2:** Include **“FTPFileExplorerOperations”** file in that application. This file contains built-in file handling methods which helps to connect our FileExplorer with FTP service.
12131213

1214-
[http://www.syncfusion.com/downloads/support/directtrac/general/ze/FTPFileExplorerOperations-1690670324.zip](http://www.syncfusion.com/downloads/support/directtrac/general/ze/FTPFileExplorerOperations-1690670324.zip#)
1214+
[http://www.syncfusion.com/downloads/support/directtrac/general/ze/FTPFileExplorerOperations901960089.zip](http://www.syncfusion.com/downloads/support/directtrac/general/ze/FTPFileExplorerOperations901960089.zip#)
12151215

12161216
**Step 3:** Add **“FileExplorerController.cs”** file in the controller part of FTP project.
12171217

@@ -1266,4 +1266,4 @@ After that, you need to specify the FTP folder path and AJAX action handler name
12661266

12671267
We have prepared a demo based on above steps, please refer this.
12681268

1269-
[http://www.syncfusion.com/downloads/support/directtrac/general/ze/FTPMVC1757946290.zip](http://www.syncfusion.com/downloads/support/directtrac/general/ze/FTPMVC1757946290.zip#)
1269+
[http://www.syncfusion.com/downloads/support/directtrac/general/ze/FTPMVC1739148525.zip](http://www.syncfusion.com/downloads/support/directtrac/general/ze/FTPMVC1739148525.zip#)

aspnetmvc/Gantt/HistogramView.md

Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,240 @@
1+
---
2+
layout: post
3+
title: Resource Histogram View | Gantt | ASP.NET MVC | Syncfusion
4+
description: resource histogram view
5+
platform: ejmvc
6+
control: Gantt
7+
documentation: ug
8+
---
9+
10+
# Resource Histogram
11+
12+
Resource histogram displays the scheduled working time range of resources for its assigned tasks. Using this, you can easily identify the resource availability and it’s working time. The resource histogram is used to allocate the resources properly throughout the project and find the details about allocated resources and allocated time range of specific resource.
13+
14+
## DataBinding
15+
You can render the histogram view for both project view Gantt and resource view Gantt by using the `ViewType` as `GanttViewType.HistogramView`.
16+
The following code example explains how to bind the resource histogram view for project view Gantt.
17+
{% highlight CSHTML %}
18+
@(Html.EJ().Gantt("GanttContainer")
19+
.TaskIdMapping("TaskID")
20+
.TaskNameMapping("TaskName")
21+
.StartDateMapping("StartDate")
22+
.DurationMapping("Duration")
23+
.ProgressMapping("Progress")
24+
.ResourceInfoMapping("ResourceID")
25+
.ResourceNameMapping("ResourceName")
26+
.ResourceIdMapping("ResourceID")
27+
.ChildMapping("SubTasks")
28+
.ViewType(GanttViewType.ProjectView)
29+
//..
30+
.Resources(ViewBag.resources)
31+
.Datasource(ViewBag.datasource)
32+
)
33+
34+
@(Html.EJ().Gantt("HistogramContainer")
35+
.ViewType(GanttViewType.HistogramView)
36+
.TaskIdMapping("TaskID")
37+
.TaskNameMapping("TaskName")
38+
.StartDateMapping("StartDate")
39+
.DurationMapping("Duration")
40+
.ProgressMapping("Progress")
41+
.ChildMapping("SubTasks")
42+
.ResourceInfoMapping("ResourceID")
43+
.ResourceNameMapping("ResourceName")
44+
.ResourceIdMapping("ResourceID")
45+
//..
46+
.Resources(ViewBag.resources)
47+
.Datasource(ViewBag.histogramData)
48+
)
49+
@(Html.EJ().ScriptManager())
50+
{% endhighlight %}
51+
N> You should bind the data source and necessary mapping properties to render the histogram view. You can differentiate whether the bound data source is project view data or resource view data using the `ganttObject.isProjectViewData` boolean property and `Load` event. Set this property to `true` if the provided data is project view and set to `false` for resource view data.
52+
53+
## Synchronize resource histogram view Gantt with other views
54+
55+
You can synchronize the splitter position and horizontal scroller position in chart side and task values of the project view/resource view Gantt control with resource histogram view Gantt by using the `ActionComplete` and `SplitterResized` events.
56+
57+
### Synchronize with project view
58+
59+
The following code snippet shows how to synchronize the resource histogram view Gantt with project view Gantt.
60+
61+
{% highlight CSHTML %}
62+
@(Html.EJ().Gantt("GanttContainer")
63+
.TaskIdMapping("TaskID")
64+
.TaskNameMapping("TaskName")
65+
.StartDateMapping("StartDate")
66+
.DurationMapping("Duration")
67+
.ProgressMapping("Progress")
68+
.ResourceInfoMapping("ResourceID")
69+
.ResourceNameMapping("ResourceName")
70+
.ResourceIdMapping("ResourceID")
71+
.ChildMapping("SubTasks")
72+
.ViewType(GanttViewType.ProjectView)
73+
.ClientSideEvents(cs => {
74+
cs.SplitterResized("splitterResized").ActionComplete("actionComplete");
75+
})
76+
//..
77+
.Resources(ViewBag.resources)
78+
.Datasource(ViewBag.datasource)
79+
)
80+
81+
@(Html.EJ().Gantt("HistogramContainer")
82+
.ViewType(GanttViewType.HistogramView)
83+
.TaskIdMapping("TaskID")
84+
.TaskNameMapping("TaskName")
85+
.StartDateMapping("StartDate")
86+
.DurationMapping("Duration")
87+
.ProgressMapping("Progress")
88+
.ChildMapping("SubTasks")
89+
.ResourceInfoMapping("ResourceID")
90+
.ResourceNameMapping("ResourceName")
91+
.ResourceIdMapping("ResourceID")
92+
.ClientSideEvents(cs => {
93+
cs.Load("load").SplitterResized("splitterResized").ActionComplete("actionComplete");
94+
})
95+
//..
96+
.Resources(ViewBag.resources)
97+
.Datasource(ViewBag.histogramData)
98+
)
99+
@(Html.EJ().ScriptManager())
100+
<script type="text/javascript">
101+
function load(args) {
102+
this.isProjectViewData = true;
103+
}
104+
function splitterResized(args) {
105+
if (args.isOnResize == false) return;
106+
if (this._id == "GanttContainer") {
107+
$("#HistogramContainer").ejGantt("setSplitterPosition", args.currentSplitterPosition);
108+
} else if (this._id == "HistogramContainer") {
109+
$("#GanttContainer").ejGantt("setSplitterPosition", args.currentSplitterPosition);
110+
}
111+
}
112+
function actionComplete(args) {
113+
if (args.requestType == "scroll" && args.scrollDirection == "horizontal") {
114+
var scrollLeft = args.scrollLeft;
115+
if (this._id == "GanttContainer" && !args.isScrollByMethod) {
116+
$("#HistogramContainer").ejGantt("setChartScrollLeft", scrollLeft);
117+
} else if (this._id == "HistogramContainer" && !args.isScrollByMethod) {
118+
$("#GanttContainer").ejGantt("setChartScrollLeft", scrollLeft);
119+
}
120+
} else if (args.requestType == "recordUpdate") {
121+
$("#HistogramContainer").ejGantt("updateHistogramTask", args.data, "update");
122+
if (args.updatedRecords && args.updatedRecords.length > 0) {
123+
for (var count = 0; count < args.updatedRecords.length; count++) {
124+
$("#HistogramContainer").ejGantt("updateHistogramTask", args.updatedRecords[count], "update");
125+
}
126+
}
127+
} else if (args.requestType == "save" && args.modifiedRecord) {
128+
$("#HistogramContainer").ejGantt("updateHistogramTask", args.modifiedRecord, "update");
129+
} else if (args.requestType == "save" && args.addedRecord) {
130+
$("#HistogramContainer").ejGantt("updateHistogramTask", args.addedRecord, "add");
131+
} else if (args.requestType == "delete") {
132+
$("#HistogramContainer").ejGantt("updateHistogramTask", args.data, "delete");
133+
}
134+
}
135+
</script>
136+
{% endhighlight %}
137+
138+
The following screenshot shows the resource histogram with project view Gantt.
139+
![](HistogramView_images/HistogramView_1.png)
140+
141+
Please find our online demo sample for further reference
142+
[ResourceHistogram](https://mvc.syncfusion.com/demos/web/gantt/histogramview)
143+
144+
### Synchronize with resource view
145+
The following code snippet shows how to synchronize the resource histogram view Gantt with resource view Gantt.
146+
147+
{% highlight CSHTML %}
148+
@(Html.EJ().Gantt("GanttContainer")
149+
.TaskIdMapping("TaskID")
150+
.TaskNameMapping("TaskName")
151+
.StartDateMapping("StartDate")
152+
.EndDateMapping("EndDate")
153+
.DurationMapping("Duration")
154+
.ProgressMapping("Progress")
155+
.GroupNameMapping("TeamName")
156+
.GroupIdMapping("TeamId")
157+
.ViewType(GanttViewType.ResourceView)
158+
.ResourceIdMapping("ResourceId")
159+
.ResourceInfoMapping("ResourceID")
160+
.ResourceNameMapping("ResourceName")
161+
//..
162+
.ClientSideEvents(cs => {
163+
cs.ActionComplete("actionComplete");
164+
cs.SplitterResized("splitterResized");
165+
})
166+
.GroupCollection(ViewBag.groups)
167+
.Resources(ViewBag.resources)
168+
.Datasource(ViewBag.datasource)
169+
)
170+
@(Html.EJ().Gantt("HistogramContainer")
171+
.TaskIdMapping("TaskID")
172+
.TaskNameMapping("TaskName")
173+
.StartDateMapping("StartDate")
174+
.EndDateMapping("EndDate")
175+
.DurationMapping("Duration")
176+
.ProgressMapping("Progress")
177+
.GroupNameMapping("TeamName")
178+
.GroupIdMapping("TeamId")
179+
.ViewType(GanttViewType.HistogramView)
180+
.ResourceIdMapping("ResourceId")
181+
.ResourceInfoMapping("ResourceID")
182+
.ResourceNameMapping("ResourceName")
183+
//..
184+
.ClientSideEvents(cs => {
185+
cs.Load("load");
186+
cs.ActionComplete("actionComplete");
187+
cs.SplitterResized("splitterResized");
188+
})
189+
.GroupCollection(ViewBag.groups)
190+
.Resources(ViewBag.resources)
191+
.Datasource(ViewBag.datasource)
192+
)
193+
@(Html.EJ().ScriptManager())
194+
<script type="text/javascript">
195+
function load(args) {
196+
this.isProjectViewData = false;
197+
}
198+
function splitterResized(args) {
199+
if (args.isOnResize == false) return;
200+
if (this._id == "GanttContainer") {
201+
$("#HistogramContainer").ejGantt("setSplitterPosition", args.currentSplitterPosition);
202+
} else if (this._id == "HistogramContainer") {
203+
$("#GanttContainer").ejGantt("setSplitterPosition", args.currentSplitterPosition);
204+
}
205+
}
206+
function actionComplete(args) {
207+
if (args.requestType == "scroll" && args.scrollDirection == "horizontal") {
208+
var scrollLeft = args.scrollLeft;
209+
if (this._id == "GanttContainer" && !args.isScrollByMethod) {
210+
$("#HistogramContainer").ejGantt("setChartScrollLeft", scrollLeft);
211+
} else if (this._id == "HistogramContainer" && !args.isScrollByMethod) {
212+
$("#GanttContainer").ejGantt("setChartScrollLeft", scrollLeft);
213+
}
214+
}
215+
//task drag and drop action and edit action
216+
else if (args.requestType == "save" && args.modifiedRecord || args.requestType == "recordUpdate") {
217+
var data = args.requestType == "save" ? args.modifiedRecord : args.item ? args.item : args.data;
218+
$("#HistogramContainer").ejGantt("updateHistogramTask", data, "update");
219+
//row delete & group delete
220+
if (args.updatedRecords) {
221+
for (var i = 0; i < args.updatedRecords.length; i++) {
222+
var data = args.updatedRecords[i];
223+
$("#HistogramContainer").ejGantt("updateHistogramTask", data, "update");
224+
}
225+
}
226+
}
227+
//add row
228+
else if (args.requestType == "save" && args.addedRecord) {
229+
$("#HistogramContainer").ejGantt("updateHistogramTask", args.addedRecord, "add");
230+
}
231+
//task delete
232+
else if (args.requestType == "delete") {
233+
$("#HistogramContainer").ejGantt("updateHistogramTask", args.data, "delete");
234+
}
235+
}
236+
</script>
237+
{% endhighlight %}
238+
239+
The following screenshot shows the resource histogram for resource view Gantt.
240+
![](HistogramView_images/HistogramView_2.png)
30.9 KB
Loading
32 KB
Loading

0 commit comments

Comments
 (0)