网格控件中的HtmlHelper扩展方法

时间:2010-08-19 06:55:48

标签: asp.net-mvc-2 telerik-mvc

我需要一些帮助来创建这种扩展方法。

我的观点继承自

<%@ 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(); 
    %>

这里我不想显示布尔值。相反,我想显示YN。例如,如果o.IsValidCustomer为真,则Y为其他N

我尝试编写以下扩展方法

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

但我的扩展方法选择了List<MyProject.Models.Customer>类型而不是Customer对象。所以我不能在lambda表达式中选择方法o.IsValidCustomer,例如

在视图中......

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

1 个答案:

答案 0 :(得分:1)

是否可以编辑域模型?

E.g。添加这个

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

然后将其绑定为一个列?

HTHS,
查尔斯