-1

I have this view

View

@model IEnumerable<xxxx>
@{
    var idGrid = "grid" + this.ViewBag.IdParameters ?? string.Empty;
    var grid = new WebGrid(id: idGrid, rowsPerPage: this.RowsPerPage, ajaxUpdateContainerId: idGrid);
    byte Status = Convert.ToByte(ViewData["StatusM"]);

    var columns = new WebGridColumn[] {
        grid.Column("Id", ReuniaoResources.Id, style: "center"),
        grid.DescriptionColumn("Status", ReuniaoResources.Status, descriptor: this.GetDescriptor(), style: "center"),

       if(Status == 4)
       {
       grid.ButtonColumn(x => x.Status == 0 ? "ico_edit.gif" : "ico_details.gif",
            toolTip: ReuniaoResources.Management,
            showRoles: ApplicationRoles.xxxxx,
            urlFunction: x => x.Status == 0 ? Url.Action("xxxx", "xxxxx", new {id = x.Id}) : Url.Action("xxxx", "xxxxx", new {id = x.Id})
       );
       }
        grid.ViewButtonColumn(enableRoles: ApplicationRoles.xxxx, toolTip: Geral.Visualizar), 
    };
}
@grid.GetHtmlExtended(this.Model, this.RowsCount, page: this, columns: columns)

When insert if in grid.ButtonColumn, show error: enter image description here

I would like this ButtonColumn appear only be satisfied IF Condition
What am I doing wrong?
How to make it work?

O Aprendiz
  • 55
  • 3
  • 13
  • You cannot have an if condition while initializing the grid. Your IF statement has to be outside of the initialization. – Kami Jan 09 '16 at 13:42

1 Answers1

0

I hope the following example will help you

var gridColumns = new List<WebGridColumn>();
if (status == 4)
{
    gridColumns.Add(companyGrid.Column(format: @<text><button class="edit-mode">Edit</button> </text>));
}

gridColumns.Add(companyGrid.Column("ID", format: @<text>@item.CompanyID</text>));
gridColumns.Add(companyGrid.Column("ID", format: @<text>@item.CompanyName</text>));

@companyGrid.GetHtml(columns:companyGrid.Columns(gridColumns.ToArray()))
Golda
  • 3,823
  • 10
  • 34
  • 67