ASP.NET MVC,使用可点击项实现 MVC-Grid

Posted

技术标签:

【中文标题】ASP.NET MVC,使用可点击项实现 MVC-Grid【英文标题】:ASP.NET MVC, Implementing MVC-Grid With Clickable Items 【发布时间】:2015-07-24 02:33:00 【问题描述】:

在花了很多时间研究之后,我终于找到了适合我的 ASP.NET MVC 应用程序的网格,它是mvc-grid。现在,在实现它之后一切看起来都很好,但我注意到缺少一个基本功能,我无法单击项目(列)。据我所见,没有这样的属性可以告诉其中一列它是可点击的(或者甚至整行都可以点击并在点击时改变颜色)。但我需要它是可点击的,以便显示所选项目的详细信息。

有没有人实现过这种网格,并且有关于如何使列成为实际链接(按钮...)的任何信息,例如调用一个javascript函数

这里是网格的代码:

@(html
.Grid(Model)
.Build(columns =>

    columns.Add(model => model.Name).Titled("Name");
    columns.Add(model => model.Surname).Titled("Surname");

    columns.Add(model => model.Age).Titled("Age");   
)
.Pageable(pager =>

    pager.PagesToDisplay = 2;
    pager.RowsPerPage = 4;
)
.Filterable()
.Sortable()
)

谢谢

【问题讨论】:

【参考方案1】:

我已经找到了解决这个Grid component的方法。我只需要像这样添加列:

columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => @<a href="/INV_Locations/Edit/@o.Id" class="btn btn-success btn-sm noDecoration"><span class="glyphicon glyphicon-pencil"></span> Edit</a>).SetWidth(15);

实际上这是我使用的第一个组件,但由于它不提供 Ajax Paging,我不得不切换(尽管这两个组件非常相似)

我尝试将此方法与我正在使用的组件一起使用,但没有 RenderValueAs 这样的方法,有一个方法 RenderedAs 但它不采用相同的参数,当我像 @987654325 一样使用它时@方法我得到错误:

 Cannot convert lambda expression to type 'object' because it is not a delegate type

我想必须有一种方法将列实现为链接(否则网格将无用),但没有可以查看的文档,所以我希望有人已经这样做并且可以给我一些提示

谢谢

【讨论】:

以上是关于ASP.NET MVC,使用可点击项实现 MVC-Grid的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 EF 在 asp.net MVC 中进行多种方法的一项事务

ASP.NET MVC 3、Razor 视图和可移植区域

如何在 ASP .net MVC 4 应用程序的 HTML5 中创建带有可点击选项的水平条形图? [关闭]

如何给DropDownList控件设置样式(ASP.NET MVC)

第一个ASP.NET MVC应用程序

Asp.net mvc和asp.net有啥区别?