当Kendo网格在PopUp中时,DatasourceRequest始终返回null

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当Kendo网格在PopUp中时,DatasourceRequest始终返回null相关的知识,希望对你有一定的参考价值。

我试图在点击链接时弹出一个kendo网格。 Kendo grid在弹出窗口中完美打开,但过滤和排序功能无法正常工作。我正在使用服务器端操作。当我在DatasourceRequest中对控制器端的特定列进行排序时,我总是将值作为null。

任何帮助都非常感谢..

  <div class="panel-body" id="countryImageData">
                    @(html.Kendo().Grid(Model.GlobalInventoryImages)
                .Name("InventoryCountryImageDetailsGrid")
                .Columns(columns =>
                {
                    columns.Bound(p => p.SmartInventoryID).Hidden().Title("SPC #").HtmlAttributes(new { @id = "CountrySmartInventory_Grid" });
                    columns.Bound(p => p.SubwayProductCode).Width(50).Title("SPC #").HtmlAttributes(new { @id = "CountrySubwayProductCode_Grid" });
                    columns.Bound(p => p.GlobalCaseImageName).Width(100).Title("Case Images").HtmlAttributes(new { @id = "GlobalCaseGraphicName_Grid" }).ClientTemplate(" <a href="javascript:void(0);" class="btn-openpdf" onClick = "getGlobalImage(this,false,true,true);">#=GlobalCaseImageName#</a> ");
                    columns.Bound(p => p.GlobalInnerImageName).Width(100).Title("Inner  Images ").HtmlAttributes(new { @id = "GlobalInnerImageName_Grid" }).ClientTemplate(" <a href="javascript:void(0);" class="btn-openpdf" onClick = "getGlobalImage(this,false,false,true);">#=GlobalInnerImageName#</a> ");
                    columns.Bound(p => p.CountryNames).Width(100).Title("Country").HtmlAttributes(new { @id = "CountryNames_Grid" });
                })
                                        .Pageable(pager => pager.PageSizes(new int[] { 25, 50, 75, 100 }).Input(true))
                                        .Sortable(e => e.AllowUnsort(true).SortMode(GridSortMode.MultipleColumn))
                                        .Scrollable()
                                        .ColumnMenu()
                                        .NoRecords("No Records")
                                        .Selectable(e => e.Mode(GridSelectionMode.Multiple))
                                        .Filterable()
                                        .ColumnResizeHandleWidth(10)
                                        .ColumnResizeHandleWidth(10)
                                        .Resizable(resize => resize.Columns(true))
                                        .Reorderable(reorder => reorder.Columns(true))
                                        .HtmlAttributes(new { @class = "custom-kendo-grid custom-kendo-grid-inv" })
                                        .DataSource(dataSource => dataSource
                                        .Ajax()
                                        .ServerOperation(true)
                                        .PageSize(25)
                                                            .Read(read => read.Action("InventoryImage_Read", "Inventory").Data("function onCountryAdditonalData(){ return {subwayProductCode: $('#SubwayProductCode').val()};}"))
                                        )

                    )

                </div>
答案

使用MVC,您必须在dataSource中添加以下内容:

type: 'aspnetmvc-ajax'

对于过滤器和排序不为空。此外,MVC控制器中的Action方法必须设置如下参数:

public async Task<ActionResult> InventoryImage_Read([DataSourceRequest] DataSourceRequest )

您没有发布MVC控制器操作,因此我不确定您是否正确设置了该部件。我希望这有帮助。

以上是关于当Kendo网格在PopUp中时,DatasourceRequest始终返回null的主要内容,如果未能解决你的问题,请参考以下文章

Kendo Grid - 从弹出窗口编辑后刷新行

ASP.NET MVC Kendo UI Edit Popup Internet Explorer Date Edit Problems

在 kendo ui 网格中以编程方式更改 serverSorting

如何在 Kendo Grid MVC 中编辑外部模型数据表单视图

Kendo grid getKendoGrid无法使用扩展的kendo网格

始终显示在 Kendo 网格中选择的第一行