2014-10-10 2 views
1

Я новичок в MVC и Kendo.ASP.NET MVC & Kendo Grid Сортировка

У меня есть этот контроллер:

public ActionResult Index() 
    { 
     db.Configuration.ProxyCreationEnabled = false; 
     return View(db.students.ToList()); 
    } 

The View есть это:

@model IEnumerable<MVC_Test1.Models.student> 

@{ 
ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

@(Html.Kendo().Grid(Model) 
.Name("Grid") 
.Pageable(pager => pager 
    .PageSizes(new[] { 2, 3, 4 }) 
    .ButtonCount(5)) 
.Sortable() 
.Selectable() 
.DataSource(dataSource => dataSource 
    .Ajax() 
    .PageSize(2) 
    .ServerOperation(false) 
) 
.Columns(columns => 
{ 
    columns.Bound(p => p.FirstName).Title("Name"); 
    columns.Bound(p => p.MiddleName).Title("Middle"); 
    columns.Bound(p => p.LastName).Title("Lastname"); 
    columns.Bound(p => p.EnrollmentDate).Format("{0:" + System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern + "}").Title("Created"); 
    columns.Command(commands => 
    { 
     commands.Custom("Options"); 
    }).Title("Options").Width(200); 
}) 
  • Первого мне нужно упорядочить список по свойству с именем "OrderPos" студенты Типовыми.
  • Я хотел бы перетащить строки, чтобы изменить порядок и автоматически обновить базу данных. Поэтому, когда я перетаскиваю строку, он захватывает поле «OrderPos» в базе данных.

У меня есть вид сортировщика kendo, но я не знаю, как смешать все, чтобы это работало. Демо-версия: http://demos.telerik.com/kendo-ui/sortable/integration-grid

Спасибо.

+0

У вас есть функциональность перетаскивания работает? – CSharper

+0

Вам нужно будет зафиксировать событие, которое срабатывает после завершения 'drop', внутри этого события вы можете запустить вызов Ajax и отправить данные сетки вместе с ним. Таким образом, ваш контроллер будет иметь GridView, связанный со списком класса MyModel, и их нужно упорядочить на основе того, как они выглядят в представлении. Это будет самая сложная часть. Я дам вам понять, как обновить базу данных оттуда :) Существует множество примеров публикации данных Kendo Grids. Если вы действительно боретесь, я покажу вам, как опубликовать его. – CSharper

+0

не могли бы вы прислать мне пример того, что вы предлагаете? –

ответ

1

Вы посмотрели их пример здесь: http://demos.telerik.com/aspnet-mvc/sortable/integration-grid?

У них есть сетка + сортировка, работающая с помощниками MVC.

+0

Да, я видел этот образец, но я не вижу, как обновлять базу данных ... извините, я совершенно новый;) –

1

сообщение Сетка для сервера, на каком-то событии

var gridData = $("#ProposalGridX").data("kendoGrid"); 

      $.ajax({ 
       url: "/GridPost/PersonPost", 
       type: 'POST', 
       data: JSON.stringify(gridData.dataSource.view()), 
       dataType: 'json', 
       contentType: 'application/json', 
       success: function (data) { 

       } 
      }); 


     [HttpPost] 
     public JsonResult PersonPost(List<QPM.Models.PortfolioViewModel> model) 
     { 
      //model will contain gridview 
      //update OrderPos 
     } 
0

Вы хотите обработать событие изменения в Сортируемом виджете и сделать AJAX пост там, чтобы обновить значения на стороне сервера.

Смотрите события демо для получения дополнительной информации: http://demos.telerik.com/aspnet-mvc/sortable/events

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