C1 MVC Extenders

Extenders are used to extend the funtionality of a control. Following is the list of some extenders provided with ASP.NET MVC Edition and the controls they can be used with.

  • The following extenders can be used with the FlexGrid control.
    • FlexGridDetailProvider
    • FlexGridFilter
    • FlexGridGroupPanel
  • The following extenders can be used with the MultiRow control.
    • FlexGridFilter
    • FlexGridGroupPanel
  • The following extenders can be used with charts.
    • AnnotationLayer
    • ChartAnimation
    • ChartGestures
    • LineMarker
    • RangeSelector
  • The following extender can be used with the FlexSheet control.
    • FormulaBar

There are two ways to use the extenders.

  • Create extender using control extender builder
  • Create extender using client extender constructor

If the extender is created using control extender builder, we can get the same in following ways:

  • c1.getExtenders(control, extenderType?)
    Gets the extenders with specified owner and type.
  • c1.getExtender(control, id)
    Gets the extender with specified owner and id.

The samples below show how to create, get and customize an extender.

  1. Use the control builder to add an extender directly.
    This is the GroupPanel generated directly via control extender builder
    Id
    Country
    Product
    Active
    Downloads
    Sales
    Expenses
    Overdue
    0
    US
    Phones
    145,248
    81,732.54
    38,401.13
    1
    Germany
    Computers
    111,632
    20,603.32
    27,944.24
    2
    UK
    Cameras
    181,205
    44,217.79
    48,877.49
    3
    Japan
    Stereos
    54,740
    29,190.63
    23,365.74
    4
    Italy
    Phones
    126,531
    46,951.19
    49,107.56
    5
    Greece
    Computers
    6,073
    86,237.02
    49,767.35
    6
    US
    Cameras
    135,436
    31,459.18
    40,845.40
    7
    Germany
    Stereos
    169,610
    99,190.22
    1,631.26
    8
    UK
    Phones
    139,988
    52,628.41
    46,700.93
    9
    Japan
    Computers
    137,524
    54,681.54
    4,055.50
    10
    Italy
    Cameras
    37,424
    45,332.72
    14,858.59
    11
    Greece
    Stereos
    197,708
    64,269.75
    38,148.18
    12
    US
    Phones
    6,078
    38,100.45
    17,157.09
  2. Use javascript code to add an extender in the client.
    This is the GroupPanel created via Javascript codes
    Id
    Country
    Product
    Active
    Downloads
    Sales
    Expenses
    Overdue
    0
    US
    Phones
    145,248
    81,732.54
    38,401.13
    1
    Germany
    Computers
    111,632
    20,603.32
    27,944.24
    2
    UK
    Cameras
    181,205
    44,217.79
    48,877.49
    3
    Japan
    Stereos
    54,740
    29,190.63
    23,365.74
    4
    Italy
    Phones
    126,531
    46,951.19
    49,107.56
    5
    Greece
    Computers
    6,073
    86,237.02
    49,767.35
    6
    US
    Cameras
    135,436
    31,459.18
    40,845.40
    7
    Germany
    Stereos
    169,610
    99,190.22
    1,631.26
    8
    UK
    Phones
    139,988
    52,628.41
    46,700.93
    9
    Japan
    Computers
    137,524
    54,681.54
    4,055.50
    10
    Italy
    Cameras
    37,424
    45,332.72
    14,858.59
    11
    Greece
    Stereos
    197,708
    64,269.75
    38,148.18
    12
    US
    Phones
    6,078
    38,100.45
    17,157.09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// This file locates: "Scripts/Lesson/C1Mvc/Extenders.js".
c1.documentReady(function () {
    // get the GroupPanel extender created by the control extender builder directly.
    var dgpGrid = wijmo.Control.getControl('#dgpGrid');
    // get extender by id
    var sdGroupPanel = c1.getExtender(dgpGrid, 'dpGroupPanel');
    // get extender by type
    //var sdGroupPanel = c1.getExtenders(dgpGrid, c1.mvc.grid.grouppanel.GroupPanel)[0];
 
    sdGroupPanel.placeholder = 'This is the GroupPanel generated directly via control extender builder';
 
    // create the GroupPanel extender in the client.
    var csgpGrid = wijmo.Control.getControl('#csgpGrid');
    var csGroupPanel = new wijmo.grid.grouppanel.GroupPanel('#csGroupPanel', {
        placeholder: 'This is the GroupPanel created via Javascript codes',
        grid: csgpGrid
    });
});
1
2
3
4
5
6
7
8
9
10
11
12
13
using System.Web.Mvc;
 
namespace LearnMvcClient.Controllers
{
    public partial class C1MvcController : Controller
    {
        // GET: Extenders
        public ActionResult Extenders()
        {
            return View(Models.FlexGridData.GetSales(200));
        }
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
@model IEnumerable<FlexGridData.Sale>
 
<h1>
    @Html.Raw(Resources.C1Mvc.Extenders_Title)
</h1>
 
<p>
    @Html.Raw(Resources.C1Mvc.Extenders_Text1)
</p>
<ul>
    <li>
        @Html.Raw(Resources.C1Mvc.Extenders_Text2)
        <ul>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text3)</li>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text4)</li>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text5)</li>
        </ul>
    </li>
    <li>
        @Html.Raw(Resources.C1Mvc.Extenders_Text6)
        <ul>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text7)</li>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text8)</li>
        </ul>
    </li>
    <li>
        @Html.Raw(Resources.C1Mvc.Extenders_Text9)
        <ul>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text10)</li>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text11)</li>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text12)</li>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text13)</li>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text14)</li>
        </ul>
    </li>
    <li>
        @Html.Raw(Resources.C1Mvc.Extenders_Text15)
        <ul>
            <li>@Html.Raw(Resources.C1Mvc.Extenders_Text16)</li>
        </ul>
    </li>
</ul>
<p>
    @Html.Raw(Resources.C1Mvc.Extenders_Text17)
</p>
<ul>
    <li>@Html.Raw(Resources.C1Mvc.Extenders_Text18)</li>
    <li>@Html.Raw(Resources.C1Mvc.Extenders_Text19)</li>
</ul>
<p>
    @Html.Raw(Resources.C1Mvc.Extenders_Text20)
</p>
<ul>
    <li>
        @Html.Raw(Resources.C1Mvc.Extenders_Text21)
    </li>
    <li>
        @Html.Raw(Resources.C1Mvc.Extenders_Text22)
    </li>
</ul>
<p>@Html.Raw(Resources.C1Mvc.Extenders_Text23)</p>
<ol>
    <li>
        @Html.Raw(Resources.C1Mvc.Extenders_Text24)
        @(Html.C1().FlexGrid<FlexGridData.Sale>().Id("dgpGrid").Bind(Model).Height(250).ShowGroupPanel(p=>p.Id("dpGroupPanel")))
    </li>
    <li>
        @Html.Raw(Resources.C1Mvc.Extenders_Text25)
        <div id="csGroupPanel"></div>
        @Html.C1().FlexGrid().Id("csgpGrid").Bind(Model).Height(250)
    </li>
</ol>