MVCContrib 网格 - 选择行
Posted
技术标签:
【中文标题】MVCContrib 网格 - 选择行【英文标题】:MVCContrib grid - select row 【发布时间】:2011-02-23 20:47:35 【问题描述】:我有一个 MVCContrib 网格,它显示来自 Account 对象的选定属性。我希望用户选择一行并被带到另一个页面以查看他们单击的行所代表的对象的完整属性。如何将 .Selected 动作添加到网格的行?
【问题讨论】:
【参考方案1】:我今天刚遇到一个类似的问题。
您可以像这样使用 .RowAttributes:
html.Grid(Model).Columns(column =>
column.For(e => e.Id);
column.For(e => e.Message);
)
.RowAttributes(x => new Dictionary<string, object>
"onClick", "window.location.href = 'google.com'")
.Render();
结果,当您单击 a 时,它会触发 javascript“onclick”并打开 google。您可以使用 Lamda 中的“x”更改 url 以传入一个 Id。
【讨论】:
【参考方案2】:如果您在 MVC3 上下文中使用 Grid,您还可以通过服务器端的扩展类来完成此操作:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MvcContrib;
using MySolution.ViewModels;
namespace MySolution.Models.Extensions
public static class RowAttributeExtensions
public static Hash GetRowAttributes(this MySolution.ViewModels.Model)
string onclickFunctionBody = "window.location.href = '/MyController/MyAction?id=" + Model.Id + "'; return false;";
Hash hash = new Hash(onclick => onclickFunctionBody)
return hash;
在客户端,这将采取以下形式:
@Html.Grid(Model).RowAttributes(row => row.Item.GetRowAttributes()).Columns(column =>
column.For(c => c.Col1);
column.For(c => c.Col2);
...
)
【讨论】:
以上是关于MVCContrib 网格 - 选择行的主要内容,如果未能解决你的问题,请参考以下文章