New to Telerik UI for ASP.NET MVC? Start a free 30-day trial

Provides a fluent interface for configuring custom data sources with strongly typed model support.

Definition

Namespace:Kendo.Mvc.UI.Fluent

Assembly:Kendo.Mvc.dll

Type Parameters:

TModel

The type of the data model.

Syntax:

C#
public class CustomDataSourceBuilder<TModel> : CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>> where TModel : class

Inheritance: objectCustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>CustomDataSourceBuilder<TModel>

Derived Classes: FilterableCustomDataSourceBuilder<TModel>

Inherited Members CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.dataSourceCustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.urlGeneratorCustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.viewContextCustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.Events(Action<DataSourceEventBuilder>)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.Total(int)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.PageSize(int)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.Page(int)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.AccentFoldingFiltering(string)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.ServerPaging(bool)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.ServerSorting(bool)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.ServerFiltering(bool)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.ServerGrouping(bool)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.ServerAggregates(bool)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.Batch(bool)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.AutoSync(bool)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.Transport(object)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.Type(string)CustomDataSourceBuilderBase<CustomDataSourceBuilder<TModel>>.GroupPaging(bool)object.GetType()object.MemberwiseClone()object.ToString()object.Equals(object)object.Equals(object, object)object.ReferenceEquals(object, object)object.GetHashCode()...

Constructors

C#
public CustomDataSourceBuilder(DataSource dataSource, ViewContext viewContext, IUrlGenerator urlGenerator)
Parameters:dataSourceDataSourceviewContextViewContexturlGeneratorIUrlGenerator

Methods

Configures the initial aggregates.

C#
public virtual CustomDataSourceBuilder<TModel> Aggregates(Action<DataSourceAggregateDescriptorFactory<TModel>> aggregates)
Parameters:aggregatesAction<DataSourceAggregateDescriptorFactory<TModel>>

The Aggregates set for the Custom DataSource

Returns:

CustomDataSourceBuilder<TModel>

Example:
C#
.DataSource(dataSource =&gt; dataSource
.Custom()
.Aggregates(aggregates =&gt;
{
aggregates.Add(p =&gt; p.UnitsInStock).Min().Max().Count();
aggregates.Add(p =&gt; p.UnitsOnOrder).Average();
aggregates.Add(p =&gt; p.ProductName).Count();
aggregates.Add(p =&gt; p.UnitPrice).Sum();
})
)

Configures the initial filter.

C#
public virtual CustomDataSourceBuilder<TModel> Filter(Action<DataSourceFilterDescriptorFactory<TModel>> configurator)
Parameters:configuratorAction<DataSourceFilterDescriptorFactory<TModel>>

The lambda which configures the Filter Action

Returns:

CustomDataSourceBuilder<TModel>

Example:
C#
.DataSource(dataSource =&gt; dataSource
.Custom()
.Filter(f =&gt; f.Add(a =&gt; a.ShipName))
)

Configures the initial grouping.

C#
public virtual CustomDataSourceBuilder<TModel> Group(Action<DataSourceGroupDescriptorFactory<TModel>> configurator)
Parameters:configuratorAction<DataSourceGroupDescriptorFactory<TModel>>

The lambda which configures the Group Action

Returns:

CustomDataSourceBuilder<TModel>

Example:
C#
.DataSource(dataSource =&gt; dataSource
.Custom()
.Group(s =&gt; s.Add(a =&gt;a.ShipName))
)

Configures Schema properties

C#
public CustomDataSourceBuilder<TModel> Schema(Action<CustomDataSourceSchemaBuilder<TModel>> configurator)
Parameters:configuratorAction<CustomDataSourceSchemaBuilder<TModel>>

The lambda which configures the Schema property

Returns:

CustomDataSourceBuilder<TModel>

Example:
C#
.DataSource(dataSource =&gt; dataSource
.Custom()
.Batch(true)
.PageSize(20)
.Schema(schema =&gt; schema.Model(m =&gt; m.Id(p =&gt; p.ProductID)))
.Transport(transport =&gt;
{
transport.Read(read =&gt;
read.Url("https://demos.telerik.com/service/v2/core/products")
.ContentType("application/json")
);
transport.Create(create =&gt;
create.Url("https://demos.telerik.com/service/v2/core/products/create")
.ContentType("application/json")
.Type(HttpVerbs.Post)
);
transport.Update(update =&gt;
update.Url("https://demos.telerik.com/service/v2/core/products/update")
.ContentType("application/json")
.Type(HttpVerbs.Post)
);
transport.Destroy(destroy =&gt;
destroy.Url("https://demos.telerik.com/service/v2/core/products/destroy")
.ContentType("application/json")
.Type(HttpVerbs.Post)
);
transport.ParameterMap("parameterMap");
})
)

Configures the initial sorting.

C#
public virtual CustomDataSourceBuilder<TModel> Sort(Action<DataSourceSortDescriptorFactory<TModel>> configurator)
Parameters:configuratorAction<DataSourceSortDescriptorFactory<TModel>>

The lambda which configures the Sort Action

Returns:

CustomDataSourceBuilder<TModel>

Example:
C#
.DataSource(dataSource =&gt; dataSource
.Custom()
.Sort(s =&gt; s.Add("ShipName"))
)

Configures the transport of the DataSource

C#
public CustomDataSourceBuilder<TModel> Transport(Action<CustomDataSourceTransportBuilder> configurator)
Parameters:configuratorAction<CustomDataSourceTransportBuilder>

The lambda which configures the Transport property

Returns:

CustomDataSourceBuilder<TModel>

Example:
C#
.DataSource(dataSource =&gt; dataSource
.Custom()
.Batch(true)
.PageSize(20)
.Schema(schema =&gt; schema.Model(m =&gt; m.Id(p =&gt; p.ProductID)))
.Transport(transport =&gt;
{
transport.Read(read =&gt;
read.Url("https://demos.telerik.com/service/v2/core/products")
.ContentType("application/json")
);
transport.Create(create =&gt;
create.Url("https://demos.telerik.com/service/v2/core/products/create")
.ContentType("application/json")
.Type(HttpVerbs.Post)
);
transport.Update(update =&gt;
update.Url("https://demos.telerik.com/service/v2/core/products/update")
.ContentType("application/json")
.Type(HttpVerbs.Post)
);
transport.Destroy(destroy =&gt;
destroy.Url("https://demos.telerik.com/service/v2/core/products/destroy")
.ContentType("application/json")
.Type(HttpVerbs.Post)
);
transport.ParameterMap("parameterMap");
})
)