условно отобразить ссылку в сетке telerik с помощью mvc3 - PullRequest
0 голосов
/ 15 апреля 2011

Я пытаюсь добавить ссылку на действие в сетку. Но только если условие существует (пользователь заблокирован). Я не могу заставить это работать в 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 (cond) ... я не могу отобразить actionlink. Однако, если я не использую лямбду? это работает, но, очевидно, отображается постоянно.

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

любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 01 декабря 2011

Решение от Rich выше помогло мне создать решение для нужд.У меня есть один столбец, который может отображать простой текст, адрес электронной почты или URL-адрес.Я хотел, чтобы адрес электронной почты и URL выбирались по горячей ссылке.Ниже приведен пример моего решения.

//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);
0 голосов
/ 15 апреля 2011

Проверьте это онлайн-демонстрация, показывающая, как использовать шаблоны столбцов в RazorВот выдержка:

columns.Template(
                @<text>
                    <img 
                        alt="@item.CustomerID " 
                        src="@Url.Content("~/Content/Grid/Customers/" + item.CustomerID + ".jpg") " 
                      />
                </text>
            )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...