开发者

If condition or for loop in a webgrid

I am using this webgrid in my view.

 <div class="grid">
 @{
var grid = new WebGrid(Model.SearchResults, canPage: true, rowsPerPage: 15);
grid.Pager(WebGridPagerModes.NextPrevious);
 @grid.GetHtml(
           htmlAttributes: new { @style = "width:100%", cellspacing = "0" },
           columns: grid.Columns(
           grid.Column(header: "Customer Name", format: (item) => Html.ActionLink((string)item.FullName, "ShowContracts", new { id = item.UserId }, new { @style = "color: 'black'", @onmouseover = "this.style.color='green'", @onmouseout = "this.style.color='black'" })),
           grid.Column(header: "SSN", format: item => item.SSN)
))
}
</div>

I search with SSN and display the results in a webgrid. The displayed data is dummy data. I have a bool AccountVerified in my viewmodel, now I should not give action link to the accounts which开发者_JS百科 are not verified and display text next to them saying account verification pending. Can someone help me on this?


Try the following:

grid.Column(
    header: "Customer Name", 
    format: (item) => 
        (bool)item.AccountVerified 
            ? Html.ActionLink(
                  (string)item.FullName, 
                  "ShowContracts", 
                  new { 
                      id = item.UserId 
                  }, 
                  new { 
                      style = "color: 'black'", 
                      onmouseover = "this.style.color='green'", 
                      onmouseout = "this.style.color='black'" 
                  }
              ) 
            : Html.Raw("pending")
)

or write a custom HTML helper to avoid this monstrosity and simply:

grid.Column(
    header: "Customer Name", 
    format: item => Html.PendingLink(item)
)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜