title | description | type | page_title | slug | res_type |
---|---|---|---|---|---|
Use CustomFields in Gantt with a simple CustomProvider |
Use CustomFields in Gantt with a simple CustomProvider. Check it now! |
how-to |
Use CustomFields in Gantt with a simple CustomProvider |
gantt-use-customfields-with-a-simple-customprovider |
kb |
This article shows a simplified version of the [Custom Tasks Field]({%slug gantt/functionality/custom-tasks-fields %}) with [a simple CustomProvider using Session]({%slug gantt-with-simple-customprovider-using-collections-in-session %}) instead of EntityFramework.
The Custom Tasks field require you to have a custom Task class and in order to use a custom Task class, you should create a [CustomProvider]({%slug gantt/data-binding/providers/custom-entityframework-provider %}). This example is using the Custom Provider from the [RadGantt with Simple CustomProvider using collections in Session]({%slug gantt-with-simple-customprovider-using-collections-in-session %}) KB article.
CustomTask.cs
using System.Collections.Generic;
using Telerik.Web.UI.Gantt;
public class CustomTask : Task
{
public CustomTask()
: base()
{
}
public string Description
{
get { return (string) (ViewState["Description"] ?? ""); }
set { ViewState["Description"] = value; }
}
public string MyCustomField
{
get { return (string) (ViewState["MyCustomField"] ?? ""); }
set { ViewState["MyCustomField"] = value; }
}
protected override IDictionary<string, object> GetSerializationData()
{
var dict = base.GetSerializationData();
dict["Description"] = Description;
dict["MyCustomField"] = MyCustomField;
return dict;
}
public override void LoadFromDictionary(System.Collections.IDictionary values)
{
base.LoadFromDictionary(values);
Description = (string) values["Description"];
MyCustomField = (string) values["MyCustomField"];
}
}
<telerik:RadGantt runat="server" ID="RadGantt1" SelectedView="WeekView" AutoGenerateColumns="false">
<Columns>
<telerik:GanttBoundColumn DataField="ID" Width="90px"></telerik:GanttBoundColumn>
<telerik:GanttBoundColumn DataField="Title"></telerik:GanttBoundColumn>
<telerik:GanttBoundColumn DataField="Description" HeaderText="Description"
DataType="String" UniqueName="Description"></telerik:GanttBoundColumn>
<telerik:GanttBoundColumn DataField="MyCustomField" HeaderText="MyCustomField"
DataType="String" UniqueName="MyCustomField"></telerik:GanttBoundColumn>
</Columns>
<CustomTaskFields>
<telerik:GanttCustomField PropertyName="Description" ClientPropertyName="description" />
<telerik:GanttCustomField PropertyName="MyCustomField" ClientPropertyName="myCustomField" />
</CustomTaskFields>
</telerik:RadGantt>
You can find atached the projects demonstrating the described approached here: