Я хотел бы создать метод расширения HtmlHelper, который позволит вам установить экземпляр модели и затем привязать свойства этой модели для визуализации некоторого html.
Это будет следовать похожему шаблону вблизи Telerik Grid.
В следующем примере мы видим, что мы установили Model
в качестве DataContext Grid.Затем объявите несколько столбцов.В каждом столбце они связывают свойство в отношении модели, которое является IEnumerable
.Поэтому, когда сетка отображает строки, соответствующее свойство связывается с экземпляром модели для этой строки.
@(Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.OrderID).Width(100);
columns.Bound(o => o.ContactName).Width(200);
columns.Bound(o => o.ShipAddress);
columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(120);
})
.Scrollable(scrolling => scrolling.Enabled((bool)ViewData["scrolling"]))
.Sortable(sorting => sorting.Enabled((bool)ViewData["sorting"]))
)
В принципе, я хотел бы получить идеи о том, как реализовать метод Bound
.Для моего сценария Модель также будет иметь значение IEnumerable
.Допустим, у меня есть модель, которая List<MyObj>
Ради аргумента, MyObj
выглядит примерно так:
public class MyObj
{
public bool IsRegistered { get; set;}
public string Name { get; set; }
}
Я хотел бы оказаться в представлении, вызывающемhtmlhelper, который отобразил бы мой список и выглядел бы примерно так:
@(Html.MyHelpers().MyList(Model)
.ControlOne.Bound(o => o.IsRegistered)
.ControlTwo.Bound(o => o.Name)
)
Я еще не очень много пробовал и, честно говоря, я не уверен, как это реализовать.Так что я буду публиковать обновления, так как это будет в стадии разработки.Но, если есть какие-либо идеи или предложения, я был бы признателен.Я знаю, что могу использовать сетку, но этот помощник будет легче, потому что мне не нужно много функциональности и я не хочу перетаскивать сетку Telerik для этой цели.
Спасибо!