2012-11-02 42 views
0

我有一个webgrid,我想要在列数据上放置一个条件语句,我将有?列上的Mvc3 webgrid条件语句

是否有可能,如果是的话,你能提供一个例子吗?

编辑

只是一个片断

grid.Column("Status","Status",canSort: true) 

如果状态值是“正确的”,我想显示图像而不是文字。

+0

显示你当前的代码 – Shyju

+0

@Shyju代码片段addded – sameer

回答

0

如果我正确理解你的问题,你会想在你的视图中放置一个'if'语句。喜欢的东西:

@{ 
    var option1 = true; 
    var option2 = false; 
} 
@if(option1){ 
    <div id="grid1"> 
     @grid.GetHtml(
      tableStyle: "grid", 
      headerStyle: "head", 
      alternatingRowStyle: "alt", 
      columns: grid.Columns(
       grid.Column("firstColumn"), 
       grid.Column("secondColumn") 
      ) 
     ) 
    </div> 
} else if (option2) { 
    <div id="grid2"> 
     @grid.GetHtml(
      tableStyle: "grid", 
      headerStyle: "head", 
      alternatingRowStyle: "alt", 
      columns: grid.Columns(
       grid.Column("firstColumn"), 
       grid.Column("secondColumn"), 
       grid.Column("thirdColumn") 
      ) 
     ) 
    </div> 
} else { 
    <div id="grid3"> 
     No grid 
    </div> 
} 
+0

请编辑 – sameer

1

Source

这里一个条件的检查,我躲在我的两列密码和电子邮件地址。通过这样做,我可以阻止我的webgrid显示我不想显示特定条件的列。

var grid = new WebGrid(Model.User) 

if(myConditionCanGoInHere) { 

@grid.GetHtml(columns: grid.Columns(

grid.Column("Name"), 
grid.Column("Password"), 
grid.Column("EmailAddress"))) 

} 
else{ 

@grid.GetHtml(columns: grid.Columns(

grid.Column("Name") 
// Here I have not included Password and EmailAddress columns. 

)) 

} 

这是当你要隐藏的列满,但如果你想显示的列和隐藏只有特定的值,那么在这种情况下,什么是必须要做的?这也是能做到的,你可以像一个如果其他条件,显示如下...

@grid.GetHtml(
    columns: grid.Columns(
     grid.Column(header: "Edit", format: item => item.CanEdit ? Html.ActionLink("Edit","Edit","Person",new {id = item.PersonId},null) : Html.Raw("uneditable")), 

     grid.Column(columnName: "CanEdit", header: "Editable?"), 
     grid.Column(columnName: "DisplayName", header: "Display Name"), 
     grid.Column(columnName: "Email", header: "Email") 
    ) 
) 
+0

请编辑 – sameer

1

一个不太繁琐的更简单可读的代码(只有一年半以后)。

var columnsToAdd = new List<WebGridColumn>(); 
///here add yout collumns according to conditions 

@grid.GetHtml(columns: columnsToAdd.ToArray())