2010-08-19 4 views
0

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

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

<%@ 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 в лямбда-выражения, например

в View ...

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

ответ

1

Будет ли возможность редактировать модель предметной области?

E.g. добавить это

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

Тогда просто свяжите это как колонку?

HTHS,
Чарльз

+0

Да мне это нравится. и ваше решение должно работать. Однако я сделал это по-другому. Telerik обеспечивают вспомогательный шаблон таким образом, мы можем назвать вспомогательный метод Html, как показано ниже columns.Template (о => \t \t \t \t \t { \t \t \t \t \t \t%> \t \t \t \t \t \t \t <% = Html.ConvertBooleanToYOrN (o.MultipleCurrencyFlag)%> \t \t \t \t <% \t \t \t}) .HtmlAttributes (новый {@class = "флаг"}). Заголовок (Html.Resource ("MultipleCurrencyTableHeader")); Спасибо большое и оцените ваше предложение. – Simon

 Смежные вопросы

  • Нет связанных вопросов^_^