Hi,
I was trying hard to use Gantt with Oracle Database over the Oracle Managed Connection, with Visual Studio 2013/ASP.NET 4.5. Well I had a few problems.
Then I returned to the blackboard and Worked on your Example. Then I hit an end.
So when you want resource assignments to be made, You cant. The events do not trigger. Am I missing something?
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Temp_GanttBinding_List.aspx.cs" Inherits="GanttDBConnection.Temp_GanttBinding_List" %>
<%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI.Gantt" tagprefix="cc1" %>
<!DOCTYPE html>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
title
></
title
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
runat
=
"server"
></
telerik:RadScriptManager
>
<
div
>
<
telerik:RadGantt
runat
=
"server"
ID
=
"RadGantt1"
Culture
=
"tr-TR"
LocalizationPath
=
"LocalResources"
SnapToGrid
=
"false"
AutoGenerateColumns
=
"false"
SelectedView
=
"MonthView"
EnableResources
=
"true"
OnDependencyInsert
=
"RadGantt1_DependencyInsert"
OnDependencyDelete
=
"RadGantt1_DependencyDelete"
OnTaskDelete
=
"RadGantt1_TaskDelete"
OnTaskUpdate
=
"RadGantt1_TaskUpdate"
OnTaskInsert
=
"RadGantt1_TaskInsert"
OnAssignmentDelete
=
"RadGantt1_AssignmentDelete"
OnAssignmentInsert
=
"RadGantt1_AssignmentInsert"
OnAssignmentUpdate
=
"RadGantt1_AssignmentUpdate"
>
<
Columns
>
<
telerik:GanttBoundColumn
DataField
=
"ID"
HeaderText
=
"#"
Width
=
"40px"
></
telerik:GanttBoundColumn
>
<
telerik:GanttBoundColumn
DataField
=
"Title"
HeaderText
=
"Başlık"
DataType
=
"String"
></
telerik:GanttBoundColumn
>
<
telerik:GanttResourceColumn
HeaderText
=
"Atanmış Kaynak"
></
telerik:GanttResourceColumn
>
</
Columns
>
<
DataBindings
>
<
TasksDataBindings
IdField
=
"ID"
TitleField
=
"Title"
StartField
=
"Start"
EndField
=
"End"
PercentCompleteField
=
"PercentComplete"
OrderIdField
=
"OrderID"
SummaryField
=
"Summary"
ParentIdField
=
"ParentID"
/>
<
DependenciesDataBindings
IdField
=
"ID"
PredecessorIdField
=
"PredecessorID"
SuccessorIdField
=
"SuccessorID"
TypeField
=
"Type"
/>
<
ResourcesDataBindings
IdField
=
"ID"
TextField
=
"Name"
ColorField
=
"Color"
/>
<
AssignmentsDataBindings
IdField
=
"ID"
TaskIdField
=
"TaskID"
ResourceIdField
=
"ResourceID"
UnitsField
=
"Units"
/>
</
DataBindings
>
</
telerik:RadGantt
>
</
div
>
</
form
>
</
body
>
</
html
>
Then I kind of added some to simulate my own project.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using Telerik.Web.UI.Gantt;
using System.Data;
namespace GanttDBConnection
{
public partial class Temp_GanttBinding_List : System.Web.UI.Page
{
private const string TasksKey = "Telerik.GanttSample.Tasks";
private const string DependenciesKey = "Telerik.GanttSample.Dependencies";
private const string AssignmentsKey = "Telerik.GanttSample.Assignments";
private const string ResourcesKey = "Telerik.GanttSample.Resources";
private List<
Task
> Tasks
{
get
{
List<
Task
> sessionTasks = Session[TasksKey] as List<
Task
>;
if (sessionTasks == null)
{
sessionTasks = new List<
Task
>();
sessionTasks.Add(new Task
{
ID = 1,
Title = "Yeni Görev",
Start = new DateTime(2015, 8, 5, 12, 40, 0),
End = new DateTime(2015, 8, 5, 12, 40, 0),
OrderID = 0
});
Session[TasksKey] = sessionTasks;
}
return sessionTasks;
}
}
public List<
Dependency
> Dependencies
{
get
{
List<
Dependency
> sessionDependencies = Session[DependenciesKey] as List<
Dependency
>;
if (sessionDependencies == null)
{
sessionDependencies = new List<
Dependency
>();
Session[DependenciesKey] = sessionDependencies;
}
return sessionDependencies;
}
}
public List<
CustomGanttResource
> CustomGanttResources
{
get
{
List<
CustomGanttResource
> sessionResources = Session[ResourcesKey] as List<
CustomGanttResource
>;
if (sessionResources == null)
{
sessionResources = new List<
CustomGanttResource
>();
sessionResources.Add(new CustomGanttResource
{
ID = 1,
Name = "Mutlu",
Color = "#ff0000"
});
Session[ResourcesKey] = sessionResources;
}
return sessionResources;
}
}
public List<
Assignment
> Assignments
{
get
{
List<
Assignment
> sessionAssignments = Session[AssignmentsKey] as List<
Assignment
>;
if (sessionAssignments == null)
{
sessionAssignments = new List<
Assignment
>();
Session[DependenciesKey] = sessionAssignments;
}
return sessionAssignments;
}
}
protected void Page_Load(object sender, EventArgs e)
{
RadGantt1.DataSource = Tasks;
RadGantt1.DependenciesDataSource = Dependencies;
RadGantt1.ResourcesDataSource = CustomGanttResources;
RadGantt1.AssignmentsDataSource = Assignments;
}
protected void RadGantt1_TaskDelete(object sender, TaskEventArgs e)
{
foreach (Task task in e.Tasks)
{
var original = GetByID((int)task.ID);
Tasks.Remove(original);
}
}
protected void RadGantt1_TaskUpdate(object sender, TaskEventArgs e)
{
foreach (Task task in e.Tasks)
{
var original = GetByID((int)task.ID);
original.Start = task.Start;
original.End = task.End;
original.Title = task.Title;
original.PercentComplete = task.PercentComplete;
original.OrderID = task.OrderID;
original.Summary = task.Summary;
original.ParentID = task.ParentID;
}
}
protected void RadGantt1_TaskInsert(object sender, TaskEventArgs e)
{
foreach (Task task in e.Tasks)
{
task.ID = NextID();
Tasks.Add(task);
}
}
private Task GetByID(int id)
{
return Tasks.Find((task) => (int)task.ID == id);
}
private int NextID()
{
var nextID = 0;
foreach (ITask task in Tasks)
{
if ((int)task.ID > 0)
{
nextID = (int)task.ID;
}
}
return ++nextID;
}
protected void RadGantt1_DependencyInsert(object sender, DependencyEventArgs e)
{
foreach (Dependency dependency in e.Dependencies)
{
dependency.ID = NextDependencyID();
Dependencies.Add(dependency);
}
}
protected void RadGantt1_DependencyDelete(object sender, DependencyEventArgs e)
{
foreach (Dependency dependency in e.Dependencies)
{
var original = GetDependencyByID((int)dependency.ID);
Dependencies.Remove(original);
}
}
private Dependency GetDependencyByID(int id)
{
return Dependencies.Find((dependency) => (int)dependency.ID == id);
}
private int NextDependencyID()
{
var nextID = 0;
foreach (IDependency dependency in Dependencies)
{
if ((int)dependency.ID > 0)
{
nextID = (int)dependency.ID;
}
}
return ++nextID;
}
protected void RadGantt1_AssignmentDelete(object sender, AssignmentEventArgs e)
{
//Just to see if this event triggers.
int a = 5;
}
protected void RadGantt1_AssignmentInsert(object sender, AssignmentEventArgs e)
{
//Just to see if this event triggers.
int a = 5;
}
protected void RadGantt1_AssignmentUpdate(object sender, AssignmentEventArgs e)
{
//Just to see if this event triggers.
int a = 5;
}
public class CustomGanttResource
{
public void CustomGanttResources(int ID, string Name, string Color)
{
_ID = ID;
_Name = Name;
_Color = Color;
}
private int _ID;
public int ID
{
get { return _ID; }
set { _ID = value; }
}
private string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
private string _Color;
public string Color
{
get { return _Color; }
set { _Color = value; }
}
}
}
}
Thanks in Advance.
Mutlu