Is it possible to do something to a viewModel property to automatically hide its column in the grid

I have a viewModel that contains a list of entities

public class MyEntity
{
     public int ID {get;set;}
     public string Name {get;set;}
     public string CellPhoneNo {get;set;}
}

If I setDataSource to grid, all columns are shown, as expected.  

What I would like to do it decorate my ID property with something like that

        [HiddenInput(DisplayValue = false)]

so it would not show at all.

Is it possible or will i need to generate all my DataColumns in my Razor file



3 Replies

SS Seeni Sakthi Kumar Seeni Raj Syncfusion Team July 12, 2019 10:52 AM UTC

Hi Fred, 

Thanks for contacting Syncfusion support. 

Before providing a solution, please share the following details that will be helpful for us to validate and provide a solution as soon as possible. 

  • Do you want to hide the ID column in Grid or hide only when perform editing(hide the input element)?
  • Share the viewModel and Grid code example.

Regards, 
Seeni Sakthi Kumar S. 



FM Fred Morin July 12, 2019 01:28 PM UTC

Hide All the time,

public class MyEntity
{
     public int ID {get;set;}
     public string Name {get;set;}
     public string CellPhoneNo {get;set;}
}


@(Html.EJS().Grid("TestGrid").DataSource(Model.Report).Render()


SS Seeni Sakthi Kumar Seeni Raj Syncfusion Team July 15, 2019 09:09 AM UTC

Hi Fred,  

Thanks for the update.  

By default, if the Grid has not been given any columns, the columns will be auto-generated in the client-end. So, the Annotation properties will not be applied to the Grid. So, we suggest to hide the required columns in the client-end in the DataBound event of the Grid. Refer to the following code example. 

 
@Html.EJS().Grid("DefaultFunctionalities").DataSource((IEnumerable<object>)ViewBag.dataSource).DataBound("onBound").  
AllowPaging().PageSettings(page=>page.PageCount(5)).Render() 
 
<script> 
    function onBound(args) { 
        this.getColumns()[1].visible = false; 
        this.refresh(); 
    } 
</script> 

Regards,  
Seeni Sakthi Kumar S. 


Loader.
Up arrow icon