Kendo Grid - Detail Template - DataSource Read is not firing the controller action

二次信任 提交于 2019-12-25 09:05:31

问题


App type: ASP.NET MVC with Kendo framework

Problem Encountered: The detail template is not firing the controller action method. Please find the attached screenshot also. I checked it under the firebug window also, there is no ajax call to the controller action method "PublishedImportFiles_Read". This is making me crazy and annoying. No error is thrown or shown for this anomaly. I guess i am missing something very small.

Please help.

MVC - View Code

 <div class="gapLeft gapBelow20" style="width:70%;">
    @(Html.Kendo().Grid<ViewModels.PublishedImportViewModel>()
                    .Name("GridImport")
                    .Columns(columns =>
                    {
                        columns.Bound(p => p.TemplateGroup).Title("Template Group").Width("120px");
                        columns.Bound(p => p.TaxYear).Title("Tax Year").Width("70px");
                        columns.Bound(p => p.FileDescription).Title("Description").Width("200px");
                        columns.Bound(p => p.DatePublished).Title("Published Date").Format("{0:MM/dd/yyyy}").Width("100px");
                        columns.Bound(p => p.PublishedBy).Title("Published By").Width("100px");

                    })
                       .Scrollable()
                       .ClientDetailTemplateId("tplGridImport")
                       .Events(et => et.DataBound(fnCall.Replace("functionName", "gridImpDataBound")))
                       .Events(et => et.DetailInit(fnCall.Replace("functionName", "gridImpChildInit")))
                       .HtmlAttributes(new { style = "height:300px;" })                           
                       .DataSource(ds => ds.Ajax().ServerOperation(false)
                               .Read(read => { read.Action("PublishedImport_Read", "Import"); })
                               .Model(m => { m.Id(p => p.TemplateGroupID); })
                               )
                  )
</div>

<script id="tplGridImport" type="text/kendo-tmpl">
    @(Html.Kendo().Grid<ViewModels.PublishedImportViewModel>()
         .Name("GridImport_#=TemplateGroupID#")
        .Columns(columns =>
        {
            columns.Bound(c => c.TemplateGroup).Title("Template Group").Width("120px");
            columns.Bound(c => c.TaxYear).Title("Tax Year").Width("70px");
        })
        .DataSource(dsx => dsx.Ajax()
                            .Read(rd => { rd.Action("PublishedImportFiles_Read", "Import"); })
                         )
        .ToClientTemplate()
    )
</script>

Import Controller ActionResult Method:

 [OutputCache(Duration = 0)]
    public ActionResult PublishedImportFiles_Read([DataSourceRequest] DataSourceRequest request)
    {
        int groupID = 5;
        IEnumerable<PublishedImportViewModel> pubVM = Enumerable.Empty<PublishedImportViewModel>();
        var pubRecords = base.ScenarioMangtService.GetPublishedImportFilesByTemplateGroup(ClientID, SelectedYear, groupID);

        pubVM = pubRecords.Select(s => new PublishedImportViewModel
                                                    {
                                                        ImportFileJobID = s.ImportFileJobID,
                                                        TemplateGroupID = s.TemplateGroupID,
                                                        TemplateGroup = s.TemplateGroup,
                                                        FileName = s.FileName,
                                                        FileDescription = s.FileDescription,
                                                        TaxYear = SelectedYear,
                                                        DatePublished = s.DatePublished,
                                                        PublishedBy = s.PublishedBy
                                                    });

        return Json(pubVM.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);

    } 

回答1:


There was nothing wrong with the KendoGrid code. Strangely, there was a javascript error in another js file. And for some weird reason, it was breaking the binding of the detail template grid.

So when i commented the other broken code in another file, this grid starts working automatically.



来源:https://stackoverflow.com/questions/39407318/kendo-grid-detail-template-datasource-read-is-not-firing-the-controller-acti

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!