Event OnTaskDeleted not fired unless there is only one task

2 posts, 0 answers
  1. Hugo
    Hugo avatar
    1 posts
    Member since:
    Apr 2017

    Posted 01 May 2017 Link to this post

    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();
                }
            }
  2. Peter Milchev
    Admin
    Peter Milchev avatar
    304 posts

    Posted 04 May 2017 Link to this post

    Hello Hugo,

    Here is a screencast demonstrating the behavior of the attached project where the DeleteTask event is called as expected. 

    Would you please check if there are any JavaScript errors in the Browser console? 

    If there aren't any, would you please modify the attached project so that it replicates the issue and send it back to us (excluding the BIN folder) in an official support ticket along with more detailed steps for reproducing it? Thus, we would be able to investigate locally and help you more efficiently.

    Regards,
    Peter Milchev
    Telerik by Progress
    Try our brand new, jQuery-free Angular 2 components built from ground-up which deliver the business app essential building blocks - a grid component, data visualization (charts) and form elements.
Back to Top