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 网格 - 选择行的主要内容,如果未能解决你的问题,请参考以下文章

使用 MVCContrib 网格进行编辑

MVCContrib Grid - 如何使用 ajax 添加和删除行?

如何将 css 类应用于 mvccontrib 网格

复杂对象上的 MvcContrib 网格排序

一页上有多个MVCContrib网格

MVCContrib 网格 - 我可以指定 tbody 属性吗?