2011-04-14 31 views
0

我試圖將操作鏈接添加到網格。但只有當條件存在時(用戶被鎖定)。我無法得到這個在mvc3(剃刀)工作。沒有顯示。使用mvc3有條件地在電傳網格中顯示鏈接

我已經試過:

@Html.Telerik().Grid(Model.Users).Name("UserGrid").DataKeys(dataKeys => dataKeys.Add(o => o.UserName)).Columns(columns => 
    { 
     columns.Template(s => Html.ActionLink(s.UserName, "Details", new { id = s.ProviderUserKey })).Title("Username (<i>click to edit</i>)"); 
     columns.Template(s => { if (s.IsLockedOut) Html.ActionLink("Unlock", "UnlockUser", new { username = s.UserName }, new { @class = "unlockimage" }); }); 
    }).Pageable().Sortable().Filterable() 

,甚至當我刪除if(條件)......我不能讓ActionLink的顯示。但是,如果我不使用lambda?它確實有效,但顯然是一直顯示的。

 columns.Template(s => Html.ActionLink("Unlock", "UnlockUser", new { username = s.UserName }, new { @class = "unlockimage" })); 

任何幫助,非常感謝。

回答

0

檢查this在線演示如何顯示如何在Razor中使用模板列。以下是摘錄:

columns.Template(
       @<text> 
        <img 
         alt="@item.CustomerID " 
         src="@Url.Content("~/Content/Grid/Customers/" + item.CustomerID + ".jpg") " 
         /> 
       </text> 
      ) 
+0

我結束了使用的解決方案是: ' columns.Template( @ @if(item.IsLockedOut == TRUE){ Unlock } );' – Rich 2011-04-20 19:33:13

0

Rich以上的解決方案幫助我制定了一個滿足需求的解決方案。我有一列可以顯示簡單的文本,電子郵件地址或網址。我想讓電子郵件地址和網址成爲可選的熱門鏈接。以下是我的解決方案的一個實例。

//Show the Value column. If the value is an email address of url display as a clickable hot link 
    columns.Template(@<text> @if (item.ContactType.Value == "Email") 
           { 
            <a href="@Url.Content("mailto:" + item.DisplayValue)" >@item.DisplayValue</a> 
           } else if (item.ContactType.Value == "Website") 
           { 
            <a href="@Url.Content("http://" + item.DisplayValue)" >@item.DisplayValue</a> 
           } else 
           { 
            @item.DisplayValue.ToString() 
           } 
         </text>) 
      .Title("Value") 
      .Width(250); 
相關問題