2011-08-04 2 views
0

J'utilise ce webgrid à mon avis.Si la condition ou pour la boucle dans un 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> 

Je recherche avec SSN et affiche les résultats dans un webgrid. Les données affichées sont des données factices. J'ai un booléen AccountVerified dans mon viewmodel, maintenant je ne devrais pas donner de lien d'action aux comptes qui ne sont pas vérifiés et afficher du texte à côté d'eux en disant vérification de compte en attente. Quelqu'un peut-il m'aider à ce sujet?

Répondre

3

les opérations suivantes:

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

ou écrire une aide HTML personnalisé pour éviter cette monstruosité et simplement:

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