Мне нужна помощь в создании этого метода расширения.Метод расширения 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"));
Да мне это нравится. и ваше решение должно работать. Однако я сделал это по-другому. 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