Имам мрежа от 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);
...
})