2014-10-24 1 views
0

Могу ли я создать элементы управления оболочкой MVC MVC KendoUI в моем классе Controller и передать их представлениям. И могу ли я также отобразить их там на представлениях.Могу ли я создать элементы управления KendoUI в моем контроллере

, например:

public ActionResult Index() 
    { 
     GridBuilder<CustomerViewModel> grid 
      = new GridBuilder<CustomerViewModel>(new Grid<CustomerViewModel>(
       new ViewContext(), // <-- view is empty 
       DI.Current.Resolve<IJavaScriptInitializer>(), 
       DI.Current.Resolve<IUrlGenerator>(), 
       DI.Current.Resolve<IGridHtmlBuilderFactory>())); 

     ViewBag.g = grid; 

     return View(); 
    } 
+0

Это было бы против философии модели Model-View-Controller. Почему вы хотите это сделать? Кроме того, виджеты Kendo не являются элементами управления на стороне сервера, такими как сетка MVC или сетка MVCContrib. Они в значительной степени полагаются на код javascript на стороне клиента. – ataravati

ответ

1

Вы можете создать метод, который использует тип кэндо gridbuilder:

public static Kendo.Mvc.UI.Fluent.GridBuilder<T> RenderGrid<T>(this HtmlHelper helper, string gridName) 
     where T : YourObject 
    { 
     return helper.Kendo().Grid<T>().Do stuff here; 

}

И вы могли бы назвать его в бритвенным разметке:

@RenderGrid("GridName") 
+0

Спасибо @kryptonkal, вы предлагаете сделать вспомогательную функцию и передать метаданные о столбце и источнике данных. Таким образом, я могу попытаться создать свои динамические сетки. Один из вопросов, связанных с этим, мне нужно создать страницу с элементами панели инструментов, сетки и вкладок. Помогают ли вспомогательные методы так, как вы предлагали, так как я должен поместить javascript и код клиентского шаблона. Мое единственное намерение состоит в том, чтобы сгенерировать большую часть кода ui для форм ввода данных того же типа (например, сайт администратора, установочные формы). – Waqar

+0

Я выполнил тот же сценарий, который вы объясняете. Я использую панель инструментов и элементы управления вкладками в сетке и применяю свой код js во внешних файлах и ссылки соответственно. Если вам нужно дополнительное объяснение и/или код, сообщите мне. Удачи. – kryptonkal

Смежные вопросы