8

如何根据我们在文本框中输入的值过滤网格过滤。

我在网格外面有一个文本框,我想根据我在文本框中输入的值搜索整个网格。第1步:

<input id="btnSearch" type="button" value="search" />
<div id="grid">

step2:从源绑定网格值

var gridResult = $("#grid").kendoGrid({
    dataSource: { data: database },
    scrollable: true,
    sortable: true,
    filterable: true,
    pageable: {
        input: true,
        numeric: false
    },
    columns: [
        {
            field: "id",
            title: "ID"
        },
        {
            field: "x",
            title: "x"
        },
        {
            field: "y"
        },
        {
            field: "z"
        },
        {
            field: "p"
        }
    ]
});

step3:文本框脚本。如果值在网格中匹配,那么我在文本框中输入的值应该显示在网格中。

$("#btnSearch").click(function () {
    $filter = new Array();
    $x = $("#txtSearch").val();
    if ($x) {
        $filter.push({ field:"x", operator:"contains", value:$x});
    }
    gridResult.datasource.filter($filter);
});
4

1 回答 1

11

你在哪里:

gridResult.datasource.filter($filter);

它应该是:

gridResult.data("kendoGrid").dataSource.filter($filter);
  1. dataSource 中的s是大写的
  2. 您必须在data("kendoGrid")此处添加或在声明时添加var gridResult.
于 2012-12-07T08:45:37.017 回答