0

Ниже мой .cshtmlВстроенный редактор не работает в кэндо MVC

@using Kendo.Mvc.UI 
@model IEnumerable<WebApplication1.Models.DemoViewModel> 

@{ 
    Layout = null; 
    ViewBag.Title = "Home Page"; 
} 

<script src="http://code.jquery.com/jquery-1.11.1.js" type="text/javascript"></script> 
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.2.714/styles/kendo.common-bootstrap.min.css" /> 
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.2.714/styles/kendo.bootstrap.min.css" /> 
<link rel="stylesheet" href="http://kendo.cdn.telerik.com/2016.2.714/styles/kendo.default.mobile.min.css" /> 
<script src="//kendo.cdn.telerik.com/2016.2.714/js/jquery.min.js"></script> 
<script src="//kendo.cdn.telerik.com/2016.2.714/js/kendo.all.min.js"></script> 
<script src="http://kendo.cdn.telerik.com/2016.2.714/js/kendo.aspnetmvc.min.js"></script> 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> 


<div class="container-fluid"> 
    <div class="row"> 
     <div class="col-md-12"> 
      <div class="PageContentHeading"> 
       <h3> 
        <span>Select the company to view the document sharing area</span> 
       </h3> 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-md-12"> 
      @(Html.Kendo().Grid<WebApplication1.Models.DemoViewModel>() 
        .Name("SiteDetail") 
        .Columns(columns => 
        { 
         columns.Bound(p => p.name).Title("Name"); 
         columns.Bound(p => p.gender).Title("Gender"); 
         columns.Bound(p => p.designation).Title("Designation"); 
         columns.Bound(p => p.department).Title("Department"); 
         columns.Command(command => { command.Edit(); command.Destroy(); }).Width(250).Title("Action");      
        }) 
        .ToolBar(toolbar => 
        { 
         toolbar.Template(@<text> 
       <div class="toolbar"> 
        <div class="row"> 
         <div class="col-md-4" style="float:right;"> 
          <div class="input-group"> 
           <span class="input-group-addon"><span class="glyphicon glyphicon-search" aria-hidden="true"></span></span> 
           <input type="text" class="form-control" id='FieldFilter' placeholder="Search by Company Details"> 
          </div> 
         </div> 
        </div> 
       </div> 
        </text>); 
        }) 
           .Navigatable() 
           .Pageable() 
           .Editable(editable => editable.Mode(GridEditMode.InLine)) 
           .Sortable() 
           .Filterable() 
           .Resizable(resize => resize.Columns(true)) 
           .Scrollable() 
           .DataSource(dataSource => dataSource // Configure the grid data source 
           .Ajax() 
           .PageSize(10)        
           .Read(read => read.Action("EditingInline_Read", "Home")) 
           .Update(update => update.Action("EditingInline_Update", "Home")) 
           .Destroy(destroy=> destroy.Action("EditingInline_Destroy", "Home") 
           .Model(model =>{ model.Id(x => x.id);})        
           ) 
      ) 
     </div> 
    </div> 
    </div> 

Ниже мой контроллер

public ActionResult EditingInline_Read([DataSourceRequest]DataSourceRequest request) 
{ 

    List<TestDemo> _tst = new List<TestDemo>(); 
    _tst.Add(new TestDemo { name = "ddd", gender = "ffs", designation = "ff", department = "fdf" }); 
    _tst.Add(new TestDemo { name = "ddd1", gender = "ffs1", designation = "ff1", department = "fdf1" }); 

    DemoViewModel model = new DemoViewModel(); 
    model.Testlist = _tst.AsEnumerable().Select(x => x); 
    DataSourceResult result = model.Testlist.ToDataSourceResult(request); 
    return Json(result, JsonRequestBehavior.AllowGet); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult EditingInline_Update([DataSourceRequest] DataSourceRequest request, DemoViewModel product) 
{ 
    if (product != null && ModelState.IsValid) 
    { 
     //productService.Update(product); 
    }    
    return Json(new[] { product }.ToDataSourceResult(request, ModelState)); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult EditingInline_Destroy([DataSourceRequest] DataSourceRequest request, DemoViewModel product) 
{ 
    if (product != null) 
    { 
     //productService.Destroy(product); 
    } 

    return Json(new[] { product }.ToDataSourceResult(request, ModelState)); 
} 

EditingInline_Read в настоящее время попал отладчик, но Update и Destroy не попадания в отладчик. Может кто-нибудь предложить, какой подход для обновления и удалить в сетке Кендо. Я видел обходное решение также для удаления [AcceptVerbs(HttpVerbs.Post)], но все же это не работает для меня.

ответ

0

Мои наблюдения:

EditingInline_Read() -> DataSourceResult result = model.Testlist.ToDataSourceResult(request); 

Приведенный выше код преобразующие List<TestDemo> как результат, не DemoViewModel .Please отлаживать этот код и проверить результат.

В представлении вы использовали DemoViewModel: @(Html.Kendo().Grid<WebApplication1.Models.DemoViewModel>()

И еще у вас есть правильные привязки столбцов!

columns.Bound(p => p.name).Title("Name"); columns.Bound(p => p.gender).Title("Gender") .....

Так что я думаю, Имя, Пол, также доступны в DemoViewModel.

GridView отображает каждый объект в списке (DataSource) как строку. И вызовите методы обновления и уничтожения только для одного объекта.

Возможное решение:

Изменение Связывание GridView с TestDemo.

Измените методы «Обновить и уничтожить», которые принимают объект типа TestDemo.

Я надеюсь, это поможет вам.

+0

Thanks Mate..issue был таким же, как вы предлагаете изменить привязку GV к TestDemo. – Steve

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