/ / MVCContrib grid - изберете ред - модел-изглед-контролер, asp.net-mvc-2, mvccontrib

Мрежа MVCContrib - изберете ред - модел-изглед-контролер, asp.net-mvc-2, mvccontrib

Имам мрежа от MVCC, която показва избранатасвойства от обект на профил. Искам потребителят да избере ред и да бъде отнесен на друга страница, за да види пълните свойства на обекта, представен от реда, в който са кликнали. Как да добавя избирана дейност към редовете на мрежата?

Отговори:

3 за отговор № 1

Днес намерих подобен проблем.

Можете да използвате .RowAttributes Like:

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 адреса, за да преминете в Id, като използвате "x" в Lamda.


3 за отговор № 2

Ако използвате Мрежата в 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);
...
})