1

テーブルを名前でフィルタリングしたいのですが、機能しません。これが私のコードです

コントローラー内

  public JsonResult Filtering()
    {
        HealthContext rc = new HealthContext();
        var last = rc.Profiles.Select(lastt => new SelectListItem { Text = lastt.LastName, Value = lastt.Id.ToString() }).ToList();
        return Json(last.ToList(), JsonRequestBehavior.AllowGet);


    }

ビューで

  <script type="text/x-kendo-template" id="template">
            <div class="toolbar">
                <label class="category-label" for="Last name"> by last name:</label>
                <input type="search" id="LastName" style="width: 230px"></input>
            </div>
        </script>

そしてまた

次のスニペットは、テーブルを表示し、名前をフィルタリングするためのものです

<script>
                  $(document).ready(function() {
                      $("#grid").kendoGrid({
                          dataSource: {

                              transport: {
                                  read: {
                                      url: "/Profiles/GetJsonData",
                                      dataType: "json"
                                  }
                              },

                              pageSize: 10,

                          },
                        toolbar: kendo.template($("#template").html()),
                          height: 250,
                          filterable: true,
                          sortable: true,
                          pageable: true,
                          defaultSorting: 'LastName ASC',
                          columns: [{
                                  field: "Id",
                                  filterable: false
                              },

                              {
                                  field: "FirstName",
                                  title: "First Name",

                                  width: 100,

                              }, {
                                  field: "LastName",
                                  title: "Last Name",

                                  width: 200
                              }, {
                                  field: "Gender",
                                  title: "Gender"
                              }
                          ]
                      });


                      var dropDown = grid.find("#LastName").kendoDropDownList({
                                            dataTextField: "LastName",
                                            dataValueField: "Id",
                                            autoBind: false,
                                            optionLabel: "All",
                                            dataSource: {

                            severFiltering: true,
                             transport: {
                                  read: {
                                      url: "/Profiles/Filtering",
                                      dataType: "json"
                                  }
                              },
                        },
                        change: function() {
                            var value = this.value();
                            if (value) {
                                grid.data("kendoGrid").dataSource.filter({ field: "Id", operator: "eq", value: parseInt(value) });
                            } else {
                                grid.data("kendoGrid").dataSource.filter({});
                            }
                        }

                });
                });
              </script>

問題は、ドロップダウンリストが値/データと同様に表示されないことです。

4

1 に答える 1

1

あなたのコードでは、グリッド変数の背後にあるものを共有していませんか? また、id で LastName html 要素を直接見つけることもできます。

すなわち

 var dropDown = $("#LastName").kendoDropDownList({ ...

コードの残りの部分は問題ないように見えます。

http://jsfiddle.net/knWcJ/70/

于 2012-10-11T18:41:16.957 に答える