У меня есть сетка MVCContrib, которая показывает выбранные свойства из объекта Account. Я хочу, чтобы пользователь выбрал строку и перешел на другую страницу, чтобы просмотреть полные свойства объекта, представленного строкой, по которой он щелкнул. Как добавить действие .Selected к строкам сетки?
Сетка MVCContrib - выберите строку
Ответы (2)
Я столкнулся с похожей проблемой сегодня.
Вы можете использовать .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.
person
Chi Chan
schedule
21.06.2010
Если вы используете сетку в контексте 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);
...
})
person
GenericMVCProgrammer
schedule
12.12.2012