I'm evaluating the RadGantt control for an eventual purshase. I have been able to insert and update tasks but there is a problem with deleting a task. The event OnTaskDelete is not fired unless there is only one task left or I have clicked delete on all tasks. So, if I click to delete only one task and there are more than one task, the confirmation window is showed but the OnTaskDelete event is not fired at all, and the task is not deleted. Is it a know bug? Here's my code:
<
telerik:RadGantt
ID
=
"RadGantt1"
runat
=
"server"
AllowTaskDelete
=
"true"
RenderMode
=
"Lightweight"
DataSourceID
=
"SqlDataSource1"
DependenciesDataSourceID
=
"SqlDataSource2"
OnTaskInsert
=
"RadGantt1_TaskInsert"
OnTaskUpdate
=
"RadGantt1_TaskUpdate"
OnTaskDelete
=
"RadGantt1_TaskDelete"
OnDependencyDelete
=
"RadGantt1_DependencyDelete"
OnDependencyInsert
=
"RadGantt1_DependencyInsert"
>
<
DataBindings
>
<
TasksDataBindings
IdField
=
"ID"
ParentIdField
=
"ParentID"
StartField
=
"Start"
EndField
=
"End"
TitleField
=
"Title"
PercentCompleteField
=
"PercentComplete"
SummaryField
=
"Summary"
ExpandedField
=
"Expanded"
/>
<
DependenciesDataBindings
TypeField
=
"Type"
IdField
=
"ID"
PredecessorIdField
=
"PredecessorID"
SuccessorIdField
=
"SuccessorID"
/>
</
DataBindings
>
</
telerik:RadGantt
>
<
asp:SqlDataSource
runat
=
"server"
ID
=
"SqlDataSource1"
ConnectionString="<%$ ConnectionStrings:LocalSqlServer %>"
DeleteCommand="DELETE FROM [GanttTasks] WHERE [ID] = @ID"
InsertCommand="INSERT INTO [GanttTasks] ([ParentID], [OrderID], [Title], [Start], [End], [PercentComplete], [Expanded], [Summary]) VALUES (@ParentID, @OrderID, @Title, @Start, @End, @PercentComplete, @Expanded, @Summary)"
SelectCommand="SELECT * FROM [GanttTasks] WHERE [ORderID] != -1"
UpdateCommand="UPDATE [GanttTasks] SET [ParentID] = @ParentID, [OrderID] = @OrderID, [Title] = @Title, [Start] = @Start, [End] = @End, [PercentComplete] = @PercentComplete, [Expanded] = @Expanded, [Summary] = @Summary WHERE [ID] = @ID">
<
DeleteParameters
>
<
asp:Parameter
Name
=
"ID"
Type
=
"Int32"
/>
</
DeleteParameters
>
<
InsertParameters
>
<
asp:Parameter
Name
=
"ParentID"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"OrderID"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"Title"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"Start"
Type
=
"DateTime"
/>
<
asp:Parameter
Name
=
"End"
Type
=
"DateTime"
/>
<
asp:Parameter
Name
=
"PercentComplete"
Type
=
"Decimal"
/>
<
asp:Parameter
Name
=
"Expanded"
Type
=
"Boolean"
/>
<
asp:Parameter
Name
=
"Summary"
Type
=
"Boolean"
/>
</
InsertParameters
>
<
UpdateParameters
>
<
asp:Parameter
Name
=
"ParentID"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"OrderID"
Type
=
"Int32"
/>
<
asp:Parameter
Name
=
"Title"
Type
=
"String"
/>
<
asp:Parameter
Name
=
"Start"
Type
=
"DateTime"
/>
<
asp:Parameter
Name
=
"End"
Type
=
"DateTime"
/>
<
asp:Parameter
Name
=
"PercentComplete"
Type
=
"Decimal"
/>
<
asp:Parameter
Name
=
"Expanded"
Type
=
"Boolean"
/>
<
asp:Parameter
Name
=
"Summary"
Type
=
"Boolean"
/>
<
asp:Parameter
Name
=
"ID"
Type
=
"Int32"
/>
</
UpdateParameters
>
</
asp:SqlDataSource
>
protected
void
RadGantt1_TaskInsert(
object
sender, Telerik.Web.UI.Gantt.TaskEventArgs e)
{
Telerik.Web.UI.Gantt.Task nouvelTache = (Telerik.Web.UI.Gantt.Task)e.Tasks.FirstOrDefault();
if
(nouvelTache.ParentID !=
null
)
SqlDataSource1.InsertParameters[
"ParentID"
].DefaultValue = nouvelTache.ParentID.ToString();
SqlDataSource1.InsertParameters[
"OrderID"
].DefaultValue = nouvelTache.OrderID.ToString();
SqlDataSource1.InsertParameters[
"Title"
].DefaultValue = nouvelTache.Title;
SqlDataSource1.InsertParameters[
"Start"
].DefaultValue = nouvelTache.Start.ToString();
SqlDataSource1.InsertParameters[
"End"
].DefaultValue = nouvelTache.End.ToString();
SqlDataSource1.InsertParameters[
"PercentComplete"
].DefaultValue = nouvelTache.PercentComplete.ToString();
SqlDataSource1.InsertParameters[
"Expanded"
].DefaultValue = nouvelTache.Expanded.ToString();
SqlDataSource1.InsertParameters[
"Summary"
].DefaultValue = nouvelTache.Summary.ToString();
}
protected
void
RadGantt1_TaskUpdate(
object
sender, Telerik.Web.UI.Gantt.TaskEventArgs e)
{
Telerik.Web.UI.Gantt.Task tacheModifiee = (Telerik.Web.UI.Gantt.Task)e.Tasks.FirstOrDefault();
SqlDataSource1.UpdateParameters[
"OrderID"
].DefaultValue = tacheModifiee.OrderID ==
null
?
"0"
: tacheModifiee.OrderID.ToString();
SqlDataSource1.UpdateParameters[
"Title"
].DefaultValue = tacheModifiee.Title;
SqlDataSource1.UpdateParameters[
"Start"
].DefaultValue = tacheModifiee.Start.ToString();
SqlDataSource1.UpdateParameters[
"End"
].DefaultValue = tacheModifiee.End.ToString();
SqlDataSource1.UpdateParameters[
"PercentComplete"
].DefaultValue = tacheModifiee.PercentComplete.ToString();
SqlDataSource1.UpdateParameters[
"Expanded"
].DefaultValue = tacheModifiee.Expanded.ToString();
SqlDataSource1.UpdateParameters[
"Summary"
].DefaultValue = tacheModifiee.Summary.ToString();
}
protected
void
RadGantt1_TaskDelete(
object
sender, Telerik.Web.UI.Gantt.TaskEventArgs e)
{
foreach
(Telerik.Web.UI.Gantt.Task tacheSuprimmee
in
e.Tasks)
{
SqlDataSource1.DeleteParameters[
"ID"
].DefaultValue = tacheSuprimmee.ID.ToString();
SqlDataSource1.Delete();
}
}