Unplanned
Last Updated: 15 Aug 2017 09:45 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GanttView
Type: Feature Request
1
Add functionality to perform grouping over the columns in the GanttViewTextViewElement . As a result the GraphicalViewElement should be refreshed accordingly.
Unplanned
Last Updated: 31 Mar 2016 12:44 by ADMIN
Workaround: 
 Sub New()

        InitializeComponent()

        Me.SetUpGantt()

        Me.RadGanttView1.GanttViewElement.TextViewElement.Scroller.AllowHiddenScrolling = True

        AddHandler Me.RadGanttView1.MouseUp, AddressOf Me.RadGanttView1_MouseUp
    End Sub

Private Sub RadGanttView1_MouseUp(sender As Object, e As MouseEventArgs)
        Dim location = e.Location

        Dim splitter As GanttViewViewsSplitterElement = TryCast(Me.RadGanttView1.ElementTree.GetElementAtPoint(e.Location), GanttViewViewsSplitterElement)
        If splitter IsNot Nothing Then
            Me.RadGanttView1.GanttViewElement.TextViewElement.Scroller.Scrollbar.Value = Me.RadGanttView1.GanttViewElement.GraphicalViewElement.VScrollBar.Value
        End If
    End Sub
Unplanned
Last Updated: 15 Aug 2017 10:02 by ADMIN
ADMIN
Created by: Hristo
Comments: 2
Category: GanttView
Type: Feature Request
1

			
Unplanned
Last Updated: 29 Mar 2016 14:25 by ADMIN
ADMIN
Created by: Dess | Tech Support Engineer, Principal
Comments: 0
Category: GanttView
Type: Bug Report
1
To reproduce:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the 'WeddingPlannerDataSet.Tasks' table. You can move, or remove it, as needed.
    Me.TasksTableAdapter.Fill(Me.WeddingPlannerDataSet.Tasks)
    'TODO: This line of code loads data into the 'WeddingPlannerDataSet.Links' table. You can move, or remove it, as needed.
    Me.LinksTableAdapter.Fill(Me.WeddingPlannerDataSet.Links)


    Me.RadGanttView1.GanttViewElement.TaskDataMember = "Tasks"
    Me.RadGanttView1.GanttViewElement.ChildMember = "Id"
    Me.RadGanttView1.GanttViewElement.ParentMember = "ParentId"
    Me.RadGanttView1.GanttViewElement.TitleMember = "Title"
    Me.RadGanttView1.GanttViewElement.StartMember = "Start"
    Me.RadGanttView1.GanttViewElement.EndMember = "End"
    Me.RadGanttView1.GanttViewElement.ProgressMember = "Progress"
    Me.RadGanttView1.GanttViewElement.LinkDataMember = "Links"
    Me.RadGanttView1.GanttViewElement.LinkStartMember = "StartId"
    Me.RadGanttView1.GanttViewElement.LinkEndMember = "EndId"
    Me.RadGanttView1.GanttViewElement.LinkTypeMember = "LinkType"

    Me.RadGanttView1.GanttViewElement.DataSource = Me.WeddingPlannerDataSet

    Me.RadGanttView1.Columns.Add("Start")
    Me.RadGanttView1.Columns.Add("End")

    Me.RadGanttView1.Ratio = 0.3
    Me.RadGanttView1.GanttViewElement.GraphicalViewElement.TimelineStart = New DateTime(2006, 8, 20)
    Me.RadGanttView1.GanttViewElement.GraphicalViewElement.TimelineEnd = New DateTime(2007, 4, 2)

    AddHandler Me.RadGanttView1.ItemChildIdNeeded, AddressOf ItemChildIdNeeded
    AddHandler Me.RadGanttView1.ItemAdding, AddressOf ItemAdding
    AddHandler Me.RadGanttView1.ItemAdded, AddressOf ItemAdded
End Sub
Dim integerIdCounter As Integer = 200
Private Sub ItemChildIdNeeded(sender As Object, e As Telerik.WinControls.UI.GanttViewItemChildIdNeededEventArgs)
    Me.integerIdCounter += 1
    e.ChildId = Me.integerIdCounter
End Sub

Workaround:
AddHandler Me.RadGanttView1.ContextMenuOpening, AddressOf RadGanttView1_ContextMenuOpening

 Private Sub RadGanttView1_ContextMenuOpening(sender As Object, e As Telerik.WinControls.UI.GanttViewContextMenuOpeningEventArgs)
     Dim item As RadMenuItem = DirectCast(e.Menu.Items(0), RadMenuItem)
     AddHandler item.Items(0).Click, AddressOf ItemClick
 End Sub

 Private Sub ItemClick(sender As Object, e As EventArgs)
     Me.RadGanttView1.GanttViewElement.GraphicalViewElement.Update(Telerik.WinControls.UI.RadGanttViewElement.UpdateActions.ExpandedChanged)
 End Sub
Unplanned
Last Updated: 17 Sep 2021 12:04 by ADMIN

Please refer to the attached gif file.

Steps :

1- Open a cell in edit mode (type Date).

2- Move the mouse outside this cell (without click)

3- Click on the arrow buton to open the calendar without focusing on the date cell (by the right).

5- The calendar does not open. (If we move the mouse over the date cell first, the calendar open fine) 
Unplanned
Last Updated: 21 Aug 2023 06:16 by ADMIN
Unplanned
Last Updated: 15 Sep 2021 11:33 by ADMIN

Please use the following code snippet. Activate the editor for a cell and click another cell:

private DataSet weddingPlan;
public DataSet WeddingPlan {
    get 
    { 
        if(weddingPlan == null)
        {
            weddingPlan = new DataSet();
            using (StreamReader rdr = new StreamReader("TelerikWeddingPlanner.xml"))
            {
                weddingPlan.ReadXml(rdr);
            }
        }

        return weddingPlan;
    }
}

public Form1()
{
    InitializeComponent();

    // Events
    this.radGanttView1.GanttViewElement.EditorRequired += GanttViewElement_EditorRequired;
    this.radGanttView1.GanttViewElement.EditorInitialized += GanttViewElement_EditorInitialized;
    this.radGanttView1.GanttViewElement.ItemValidating += GanttViewElement_ItemValidating;
    this.radGanttView1.GanttViewElement.ItemValidated += GanttViewElement_ItemValidated;
    this.radGanttView1.GanttViewElement.ItemEdited += GanttViewElement_ItemEdited;
}

private void GanttViewElement_DoubleClick(object sender, EventArgs e)
{
    Debug.WriteLine("GanttViewElement_DoubleClick");
}

private void GanttViewElement_EditorRequired(object sender, GanttViewEditorRequiredEventArgs e)
{
    Debug.WriteLine("GanttViewElement_EditorRequired");
    
}

private void GanttViewElement_EditorInitialized(object sender, GanttViewItemEditorInitializedEventArgs e)
{
    Debug.WriteLine("GanttViewElement_EditorInitialized");
    
}

private void GanttViewElement_ItemValidated(object sender, GanttViewItemValidatedEventArgs e)
{
    Debug.WriteLine("GanttViewElement_ItemValidated");
    
}

private void GanttViewElement_ItemValidating(object sender, GanttViewItemValidatingEventArgs e)
{
    Debug.WriteLine("GanttViewElement_ItemValidating");
    Debug.WriteLine(e.Column.FieldName);
    e.Cancel = true;
}

private void GanttViewElement_ItemEdited(object sender, GanttViewItemEditedEventArgs e)
{
    Debug.WriteLine("GanttViewElement_ItemEdited");
    
}

private void Form1_Load(object sender, EventArgs e)
{
    this.radGanttView1.DataSource = WeddingPlan;


    this.radGanttView1.GanttViewElement.TaskDataMember = "Tasks";
    this.radGanttView1.GanttViewElement.ChildMember = "Id";
    this.radGanttView1.GanttViewElement.ParentMember = "ParentId";
    this.radGanttView1.GanttViewElement.TitleMember = "Title";
    this.radGanttView1.GanttViewElement.StartMember = "Start";
    this.radGanttView1.GanttViewElement.EndMember = "Finish";
    this.radGanttView1.GanttViewElement.ProgressMember = "Progress";
    this.radGanttView1.GanttViewElement.LinkDataMember = "Links";
    this.radGanttView1.GanttViewElement.LinkStartMember = "StartId";
    this.radGanttView1.GanttViewElement.LinkEndMember = "EndId";
    this.radGanttView1.GanttViewElement.LinkTypeMember = "LinkType";

    this.radGanttView1.GanttViewElement.Columns.Add(new GanttViewTextViewColumn("Id"));
    this.radGanttView1.GanttViewElement.Columns.Add(new GanttViewTextViewColumn("ParentId"));
    this.radGanttView1.GanttViewElement.Columns.Add(new GanttViewTextViewColumn("Title"));
    this.radGanttView1.GanttViewElement.Columns.Add(new GanttViewTextViewColumn("Start"));
    this.radGanttView1.GanttViewElement.Columns.Add(new GanttViewTextViewColumn("Finish"));

    this.radGanttView1.GanttViewElement.Columns[0].Visible = false;
    this.radGanttView1.GanttViewElement.Columns[1].Visible = false;
    this.radGanttView1.GanttViewElement.Columns[2].Width = 350;
    this.radGanttView1.GanttViewElement.Columns[3].Width = 120;
    this.radGanttView1.GanttViewElement.Columns[4].Width = 120;

    this.radGanttView1.GanttViewElement.GraphicalViewElement.TimelineRange = TimeRange.Month;
    this.radGanttView1.GanttViewElement.GraphicalViewElement.TimelineStart = new DateTime(2006, 8, 21);
    this.radGanttView1.GanttViewElement.GraphicalViewElement.TimelineEnd = new DateTime(2007, 4, 3);

}

private void radGanttView1_ItemChildIdNeeded(object sender, GanttViewItemChildIdNeededEventArgs e)
{
    int max = int.MinValue;
    foreach (DataRow row in (this.radGanttView1.DataSource as DataSet).Tables[0].Rows)
    {
        if (int.Parse(row[0].ToString()) > max)
        {
            max = int.Parse(row[0].ToString());
        }
    }
    e.ChildId = ++max;
}

Unplanned
Last Updated: 05 Nov 2021 06:53 by ADMIN

Please use the following code snippet:

 

    public partial class Form1 : Form
    {
        public class VM
        {
            public string Text
            {
                get; set;
            }
            public DateTime Start
            {
                get; set;
            }
            public DateTime End
            {
                get; set;
            }
        }

        public Form1()
        {
            InitializeComponent();

            var ViewModel = new VM[]
            {
                new VM()
                {
                    Text = "CrashTest",
                    Start = new DateTime(2021, 11, 3, 10, 0, 0),
                    End = new DateTime( 2021, 11, 3, 23, 0, 0 )  //crash
                    //End = new DateTime( 2021, 11, 3, 22, 0, 0 )  //No crash
                },
            };

            radGanttView1.GanttViewElement.GraphicalViewElement.OnePixelTime = new TimeSpan( 0, 1, 0 );
            radGanttView1.GanttViewElement.GraphicalViewElement.TimelineStart = ViewModel.Min( T => T.Start );
            radGanttView1.GanttViewElement.GraphicalViewElement.TimelineEnd = ViewModel.Max( T => T.End );
            radGanttView1.GanttViewElement.GraphicalViewElement.TimelineRange = TimeRange.Day;

            radGanttView1.GanttViewElement.ChildMember = "Text";
            radGanttView1.GanttViewElement.TitleMember = "Text";
            radGanttView1.GanttViewElement.StartMember = "Start";
            radGanttView1.GanttViewElement.EndMember = "End";

            radGanttView1.DataSource = ViewModel;
        }
    }

Currently, the possible solution that I can suggest is to increase the view's end with 1 hour:

  radGanttView1.GanttViewElement.GraphicalViewElement.TimelineEnd = ViewModel.Max( T => T.End.AddHours(1));

1 2