2011-08-04 22 views
0

私は私のビューでこのwebgridを使用しています。条件またはforループがwebgridである場合

<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> 

私はSSNで検索し、結果をWebグリッドに表示します。表示されるデータはダミーデータです。 私はビューモードでブールAccountVerifiedを持っていますが、確認されていないアカウントにはアクションリンクを張らず、アカウント確認の保留を示すテキストの横にテキストを表示するべきです。誰かが私にこれを助けることができますか?

答えて

3

次のことを試してみてください。

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") 
) 

またはこの怪物を避けるために、カスタムHTMLヘルパーを書いて、単に:

grid.Column(
    header: "Customer Name", 
    format: item => Html.PendingLink(item) 
) 
関連する問題