Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
375
How to display data in a grid?
posted

Hello everybody!

I want to add an object in the grid ,with its ID and its name. So I am inspired from the follow link : http://es.infragistics.com/community/forums/p/72892/370474.aspx

What  I don't understand, is how to display an object...Here a part of my code (I simplified):

<script>   

   function fillProductNameLookup(objectToFill) {

        var colSettings = $("#grid1").igGridUpdating("option", "columnSettings");

        var colSetting;

        for (var i = 0; i < colSettings.length; i++) {

            colSetting = colSettings[i];

            if (colSetting.columnKey === "Product") {

                if (colSetting.editorType && colSetting.editorType === "combo") {

                    var ds = colSetting.editorOptions.dataSource;

                    var textKey = colSetting.editorOptions.textKey;

                    var valueKey = colSetting.editorOptions.valueKey;

                    var item;

                    for (var j = 0; j < ds.length; j++) {

                        item = ds[j];

                        objectToFill[item[valueKey]] = item[textKey];}}

                break;}}}

 

   var lookupProductList = {};

   fillProductNameLookup(lookupProductList);

 

   function lookupProductName(productNumber) {

       return lookupProductList[productNumber];}

</script>

@{

    ViewBag.Source = WebSite1.ProductsModel.Get();   

}

    @(Html.Infragistics().Grid<Model>()

    .ID("grid1")

    .PrimaryKey("ID")

    .RestSettings(rest =>

        rest.RestSetting()

            .Create(c => c.RestVerbSetting().Url("/api/linea").Batch(true))

            .Update(u => u.RestVerbSetting().Url("/api/linea"))

            .Remove(r => r.RestVerbSetting().Url("/api/linea"))

        )

    .Columns(column =>

    {

        column.For(x => x.ID).Hidden(true);

        column.For(x => x.Product ).Width("80px").FormatterFunction("lookupProductName");       

    })

    .Features(features => 

    {

        features.Selection().Mode(SelectionMode.Cell).MultipleSelection(true);

        features.RowSelectors().EnableCheckBoxes(false).EnableRowNumbering(true);

              features.Updating().EditMode(GridEditMode.RowEditTemplate).RowEditDialogContainment("window").EnableAddRow(true).RowEditDialogHeight("700").RowEditDialogWidth("700").RowEditDialogFieldWidth("300")

            .ColumnSettings(settings =>

            {                settings.ColumnSetting().ColumnKey("Product").EditorType(ColumnEditorType.Combo)

                    .ComboEditorOptions(options =>

                    { 

                       options.ValueKey("IDProduct").TextKey("NameProduct").DataSource(ViewBag.Source);

                    });

            });

    }) 

    .Height("500px")

    .Width("100%")

    .DataSourceUrl("/api/linea")

    .LocalSchemaTransform(true)

    .DataBind()

    .Render()

    )

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

In the controller class :

public IQueryable<Model> Get()

{

var pRepositery = new P_Repositery();

var prods = pRepositery.Get();

IEnumerable<Model> prodsM = ToModel(prods);

return prodsM.AsQueryable();

}

 

%%%%%%%%%%%%%%%%%

In the model class:

public class Model{

        [Display(Name = "ID")]

        public int ID{ get; set; }

 

        [Display(Name = "Product")]

        public Dictionary<int, string> Product { get; set; }

 

       //OR

       //[Display(Name = " Product ")]

       //public ProductModel Product { get; set; }   

}

 

public class ProductModel{

        [Display(Name = "IDProduct")]

        public int IDProduct { get; set; }

 

        [Display(Name = "Name")]

        public Dictionary<int, string> NameProduct { get; set; }

      

       …

}

 

 

 

Please, tell me what is wrong...At this moment, the grid is well displayed expected products (that are "undefined").

It is the declaration of Product in the class Model? (dictionary<int, string> or ProductModel)?

Best regards,

F2O