加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 如何在Mvccontrib网格模型中使用自定义列?

发布时间:2020-12-16 06:58:40 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET MVC 3 Mvccontrib网格,如下所示: @Html.Grid(Model).Columns(column ={ column.For(x = x.UserId).Named("ID"); column.For(x = x.Name); column.Custom(@divimg src='@item.ImageUrl' alt="@item.Name"/a href="@item.Link"@item.Name/a
我正在使用ASP.NET MVC 3 Mvccontrib网格,如下所示:

@Html.Grid(Model).Columns(column =>
{
  column.For(x => x.UserId).Named("ID");
  column.For(x => x.Name);
  column.Custom(@<div><img src='@item.ImageUrl' alt="@item.Name"/><a href="@item.Link">@item.Name</a></div>).Named("Name");
  column.For(x => x.Score).Named("Score");
})

但现在我需要将其转换为自定义网格模型:

@Html.MvcContrib().Grid(Model).WithModel(new MyGridModel()).Sort(ViewData["sort"] as GridSortOptions).Attributes(id => "grid",style => "width: 100%;")

与相应的网格模型:

public class MyGridModel : GridModel<MyModel>
{
  public MyGridModel()
  {
    Column.For(x => x.UserId);
    Column.For(x => x.Name);
    Column.For(x => x.ImageUrl);
    RenderUsing(new HtmlTableGridRenderer<MyModel>());
  }
}

但是如何在网格模型中执行自定义列?
Column.Custom(???);

解决方法

试试这样:

public class MyGridModel : GridModel<MyModel>
{
    public MyGridModel()
    {
        Column.For(x => x.UserId);
        Column.For(x => x.Name);
        Column.Custom(MyImage);
        Column.For(x => x.Score);
        RenderUsing(new HtmlTableGridRenderer<MyModel>());
    }

    private static IHtmlString MyImage(MyModel model)
    {
        var div = new TagBuilder("div");
        var img = new TagBuilder("img");
        var a = new TagBuilder("a");
        img.Attributes["src"] = model.ImageUrl;
        img.Attributes["alt"] = model.Name;
        a.Attributes["href"] = model.Link;
        a.SetInnerText(model.Name);

        div.InnerHtml = string.Format(
            "{0}{1}",img.ToString(TagRenderMode.SelfClosing),a.ToString()
        );

        return MvcHtmlString.Create(div.ToString());
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读