2012-11-02 73 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())