AUTHOR: Peter Milchev
DATE POSTED: March 20, 2019
Configure the YearView of the Gantt so that it shows Quarters.
In the OnClientDataBound event, if the selected view is the year, we will use JavaScript to change the year header cell text and multiply the number of cells.
<script type=
"text/javascript"
>
function
OnClientDataBound(sender, args) {
var
$ = $ || $telerik.$;
gantt = sender;
if
(gantt.get_selectedView() == Telerik.Web.UI.GanttViewType.Year) {
$headerWrap = $(gantt.get_element()).find(
".rgtTimelineWrapper .radGridHeaderWrap"
);
$yearRow = $headerWrap.find(
"tbody tr"
).eq(0);
$headers = $yearRow.find(
"td[colspan=12]"
/* // for versions prior R1 2020 https://www.telerik.com/support/whats-new/aspnet-ajax/release-history/ui-for-asp-net-ajax-r1-2020-(version-2020-1-114)
var $headerWrap = $(gantt.get_element()).find(".rgtTimelineWrapper .radGridHeaderWrap");
var $yearRow = $headerWrap.find("thead tr").eq(0);
var $headers = $yearRow.find("th[colspan=12]");
*/
for
(
headerIndex = 0; headerIndex < $headers.length; headerIndex++) {
$header = $headers.eq(headerIndex)
year = $header.text();
$header.text(
"Q1 "
+ year)
$header.prop(
"colspan"
,
"3"
insertAfter = $header;
quarterIndex = 2; quarterIndex <= 4; quarterIndex++) {
$newHeader = $header.clone();
$newHeader.text(
"Q"
+ quarterIndex +
" "
+ year);
$newHeader.insertAfter(insertAfter)
insertAfter = $newHeader;
}
</script>
<
telerik:RadGantt
runat
=
"server"
ID
"RadGantt1"
OnClientDataBound
"OnClientDataBound"
SnapToGrid
"false"
SelectedView
"YearView"
YearView-UserSelectable
"true"
DataBindings
TasksDataBindings
IdField
"ID"
TitleField
"Title"
StartField
"Start"
EndField
"End"
PercentCompleteField
"PercentComplete"
OrderIdField
"OrderID"
SummaryField
"Summary"
ParentIdField
"ParentID"
/>
DependenciesDataBindings
PredecessorIdField
"PredecessorID"
SuccessorIdField
"SuccessorID"
TypeField
"Type"
</
protected
void
Page_Load(
object
sender, EventArgs e)
{
RadGantt1.DataSource = GetGanttTasksSource();
private
DataTable GetGanttTasksSource()
DataTable dataTable =
new
DataTable();
dataTable.Columns.Add(
DataColumn(
typeof
int
)));
)) { AllowDBNull =
true
});
string
(DateTime)));
decimal
"Expanded"
bool
dataTable.PrimaryKey =
DataColumn[] { dataTable.Columns[
] };
parentsCount = 4;
i = 1; i <= parentsCount; i++)
DataRow row = dataTable.NewRow();
row[
] = i;
] = DBNull.Value;
] =
"Task #"
+ (i);
] = DateTime.Now.AddDays(i - 1);
] = DateTime.Now.AddDays(i * 10);
] = 0.2M;
(i == parentsCount)
false
;
else
] = i == parentsCount;
// last task is a parent/summary
dataTable.Rows.Add(row);
i = parentsCount + 1; i <= parentsCount + 5; i++)
] = parentsCount;
] = DateTime.Now.AddDays(i * 100);
] = 0.4M;
return
dataTable;
Resources Buy Try