网格控件中的HtmlHelper扩展方法

发布于 2024-09-14 16:20:56 字数 1319 浏览 8 评论 0原文

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

我的视图继承自

<%@ 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 为 true,则 Y,否则 N

我尝试编写以下扩展方法

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

,但我的扩展方法选择 List 类型,而不是 Customer 对象。因此,我无法在 lambda 表达式中选择方法 o.IsValidCustomer,例如

在 View 中...

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

I need some help creating this extension method.

My view inherits from

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

And I have a grid control defined by

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

Here I don't want to display the boolean value. Instead I want to display Y or N. For example if o.IsValidCustomer is true then Y else N.

I tried writing the below extension method

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

But my extension method picks up the List<MyProject.Models.Customer> type and not the Customer object. So I cannot select the method o.IsValidCustomer in the lambda expression for example

in View...

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

喜爱皱眉﹌ 2024-09-21 16:20:57

可以编辑您的域模型吗?

例如添加这个

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

然后将其绑定为一列?

HTH,
查尔斯

Would it be possible to edit your domain model?

E.g. add this

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

Then just bind that as a column?

HTHs,
Charles

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文