Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Model view controller Telerik MVC UI(剑道)网格不过滤_Model View Controller_Filter_Kendo Ui_Telerik_Grid - Fatal编程技术网

Model view controller Telerik MVC UI(剑道)网格不过滤

Model view controller Telerik MVC UI(剑道)网格不过滤,model-view-controller,filter,kendo-ui,telerik,grid,Model View Controller,Filter,Kendo Ui,Telerik,Grid,我正在尝试将Telerik UI用于ASP.NET MVC(剑道控件)。我在一个视图中有一个网格,它可以正确加载数据,但不会过滤。我是MVC新手,所以问题可能是我对基础知识的无知 我的视图只包含以下网格。它充满了数据,甚至编辑功能也可以工作。过滤是个问题 @Html.Kendo().Grid(Model).Name("JobsRecurringGridEx").DataSource(d => d.Ajax() .Model(m => m.Id(o => o.ID

我正在尝试将Telerik UI用于ASP.NET MVC(剑道控件)。我在一个视图中有一个网格,它可以正确加载数据,但不会过滤。我是MVC新手,所以问题可能是我对基础知识的无知

我的视图只包含以下网格。它充满了数据,甚至编辑功能也可以工作。过滤是个问题

@Html.Kendo().Grid(Model).Name("JobsRecurringGridEx").DataSource(d => d.Ajax()
        .Model(m => m.Id(o => o.ID))      
        .Read(r => r.Action("GetJobsRecurringAll", "Home"))
        .Update(r => r.Action("UpdateJobsRecurring", "Home"))
        ).Columns(col =>
        {
            col.Bound(o => o.ID);
            col.Bound(o => o.JOB_NAME);
            col.Bound(o => o.DBID);

            col.Bound(o => o.PARAMETER_1).Hidden(true);
            col.Bound(o => o.PARAMETER_2).Hidden(true);
            col.Bound(o => o.PARAMETER_3).Hidden(true);
            col.Bound(o => o.PARAMETER_4).Hidden(true);
            col.Bound(o => o.PARAMETER_5).Hidden(true);
            col.Bound(o => o.PARAMETER_6).Hidden(true);
            col.Bound(o => o.PARAMETER_7).Hidden(true);
            col.Bound(o => o.PARAMETER_8).Hidden(true);
            col.Bound(o => o.PARAMETER_9).Hidden(true);
            col.Bound(o => o.PARAMETER_10).Hidden(true);

            col.Bound(o => o.START_RUN_DATE_TIME);
            col.Bound(o => o.LAST_RUN_DATE_TIME);
            col.Bound(o => o.NEXT_RUN_DATE_TIME);
            col.Bound(o => o.SEED_RUN_DATE_TIME);
            col.Bound(o => o.RUN_INTERVAL);
            col.Bound(o => o.ACTIVE);
            col.Bound(o => o.PAUSED);
            col.Bound(o => o.CREATED_BY);
            col.Bound(o => o.CREATED_DATE_TIME);
            col.Bound(o => o.CRON_SCHEDULE);
        }).Editable(e => e.Mode(GridEditMode.InCell)).ToolBar(tb => 
         tb.Save()).Pageable().Sortable().Filterable()

好的,您的网格/数据源配置为ServerOperation(true)。这是默认值,除非指定ServerOperation(false)。Ajax()不相关(即Server()与Ajax()相反,而不是ServerOperation())

这意味着,当您对网格进行排序/分组/筛选时,它将调用您的读取操作,以便您可以在服务器上进行排序/分组/筛选,并传回相应的结果。ServerOperation(false)只会在初始加载(或刷新)时调用读取操作,但会在javascript中执行排序/分组/过滤(Kendo会自动执行此操作)

因此,您负责数据的过滤。Kendo将sort/group/filter条件作为DataSourceRequest参数传递给Read操作,然后对“all”查询使用它来返回请求的数据

您可以自行执行此操作,但Kendo(MVC的UI)提供了ToDataSourceResult()扩展方法,将DataSourceRequest对象应用于列表/集合/可枚举/可查询/等

您只需返回lstJobs的ToDataSourceResult(),而不只是直接返回lstJobs(整个列表):

using Kendo.Mvc.Extensions;

public ActionResult GetJobsRecurringAll([DataSourceRequest] DataSourceRequest dsRequest)
{
    List<JobsRecurringViewModel> lstJobs = JobsRecurringViewModel.getJobsRecurringAll();

    return Json(lstJobs.ToDataSourceResult(dsRequest, ModelState));
} 
使用Kendo.Mvc.Extensions;

公共操作结果GetJobsRecurringAll([DataSourceRequest]DataSourceRequest dsRequest) { List lstJobs=JobsRecurringViewModel.getJobsRecurringAll(); 返回Json(lstJobs.ToDataSourceResult(dsRequest,ModelState)); }
在服务器上执行读取操作(GetJobsRecurringAll)是什么样子的?您的网格已配置为ServerOperation,因此它将在筛选时发出服务器请求,以便您的读取操作负责“手动”或使用ToDataSourceResult()筛选数据。public ActionResult GetJobsRecurringAll([DataSourceRequest]DataSourceRequest dsRequest){List lstJobs=JobsRecurringViewModel.getJobsRecurringAll();返回Json(lstJobs);}我还没有从文档中弄清楚这些都意味着什么。你说我的网格是为服务器操作配置的。这是什么告诉你的?如果配置为ajax会是什么样子?谢谢,可怕的海盗!我至少现在已经仔细看了DataSourceRequest,我看到了解决这一混乱局面的方法。如果你能告诉我使用ToDataSourceResult(),我将不胜感激。问题已经解决。谢谢!