MVCContrib grid - выбрать строку - PullRequest
3 голосов
/ 25 мая 2010

У меня есть сетка MVCContrib, которая показывает выбранные свойства объекта Account. Я хочу, чтобы пользователь выбрал строку и перешел на другую страницу, чтобы просмотреть все свойства объекта, представленного строкой, по которой он щелкнул. Как добавить действие .Selected к строкам сетки?

Ответы [ 2 ]

3 голосов
/ 13 декабря 2012

Если вы используете Grid в контексте MVC3, вы также можете сделать это с помощью класса расширений на стороне сервера:

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);
    ...
})
3 голосов
/ 21 июня 2010

Я только что столкнулся с подобной проблемой сегодня.

Вы можете использовать .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();

В результате, когда вы нажмете на кнопку, он вызовет JavaScript «onclick» и откроет Google. Вы можете изменить URL для передачи идентификатора, используя "x" в Lamda.

...