如何使用下拉列表中的值在剑道网格上设置初始过滤器

时间:2017-06-29 12:45:32

标签: kendo-ui kendo-grid

我有这个网格

@(Html.Kendo().Grid<TaskViewModel>()
      .Name("grid")
     ...
      .Columns(columns =>
      {
          columns.Bound(e => e.IsSelected)
              .Sortable(true)
              .Filterable(false)
              .Title(string.Empty);

          columns.Bound(e => e.WorkflowStep).Title("Task Status").Filterable(false);
          ...
      })
      .Filterable()
      ...
      .DataSource(dataSource => dataSource
          .Ajax()
          .Read(read => read.Action("AllTasks", "Cockpit").Data("includeFinishedTasks"))
          .ServerOperation(true)
          .Filter(f => f.Add(p => p.CurrentWorkflowStepId).IsEqualTo(2))
          )
      )

我在数据源上设置了初始过滤器。

.Filter(f => f.Add(p => p.CurrentWorkflowStepId).IsEqualTo(2))

我有什么方法可以拥有这样的东西吗?

.Filter(f => f.Add(p => p.CurrentWorkflowStepId).IsEqualTo(DropDownListForCurrentWorkflowStepId.value()))

事先提前。

2 个答案:

答案 0 :(得分:2)

你可以通过jQuery实现这样的功能:

$(".k-grid").data("kendoGrid").dataSource.filter({ field: "CurrentWorkflowStepId", operator: "eq", value: "(dropdownlist value)" });

您可以在dropdownlist onChange事件或document.ready块中执行此代码 - 以初步过滤您的网格。

答案 1 :(得分:1)

您可以通过使用过滤器配置DataSource来实现此目的:

a servicename:
another servicename:
test-servicename: abc