Метод расширения HtmlHelper в сетке управления - PullRequest
0 голосов
/ 19 августа 2010

Мне нужна помощь в создании этого метода расширения.

Мой взгляд наследует от

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/NoSideMenu.Master"
Inherits="System.Web.Mvc.ViewPage<List<MyProject.Models.Customer>>" %>

И у меня есть элемент управления сеткой, определенный

<% Html.Telerik().Grid(Model)
    .Name("customer-history-grid").Footer(false).Columns(columns =>
    {
        columns.Bound(o => o.IsValidCustomer).Title(Html.Resource("ValidCustomerTableHeader"));
    }
    ).Pageable(pager => pager.PageSize(25))
    .Footer(true)
    .Render(); 
    %>

Здесь я не хочу отображать логическое значение. Вместо этого я хочу отобразить Y или N. Например, если o.IsValidCustomer истинно, тогда Y иначе N.

Я пытался написать следующий метод расширения

public static string ConvertToString<T, TValue>(this HtmlHelper<T> helper, Expression<Func<T, TValue>> expression)
    {
        ......
    }

Но мой метод расширения выбирает тип List<MyProject.Models.Customer>, а не объект Customer. Поэтому я не могу выбрать метод o.IsValidCustomer в лямбда-выражении, например

в представлении ...

columns.Bound(o => o.IsValidCustomer).Format(Html.ConvertToString(o => o.IsValidCustomer)).Title(Html.Resource("ValidCustomerTableHeader"));

1 Ответ

1 голос
/ 19 августа 2010

Можно ли редактировать модель вашего домена?

Например, добавить это

public string IsValidCustomerString
{
    get { return IsValidCustomer ? "Y" : "N"; }
}

Затем просто связать это как столбец?

HTH,
Charles

...