0

ページの読み込み時に日付範囲ベースをフィルタリングしてページに表示したい。日付が自動入力されていますが、私の問題は、JQUERY で準備ができているドキュメントを使用しているときにそれをフィルタリングできないことです。

コード:

                <label for="from">Start date:</label>

                <input type="text" style="width: 196px;" id="from" />

                <label for="to">End date:</label>

                <input type="text" style="width: 196px;" id="to" />

 //function for datepicker and date range


                $(function() {
                $("#from").datepicker({
                    defaultDate: "-3w",
                    minDate: "-3w",
                    changeMonth: true,
                    numberOfMonths: 1,
                    onSelect: function(selectedDate) {
                        $("#to").datepicker("option", "minDate", selectedDate);
                    }
                }).datepicker('setDate', '-3w');
                $("#to").datepicker({
                    defaultDate: "+1w",
                    maxDate: "currentText",
                    changeMonth: true,
                    numberOfMonths: 1,
                    onSelect: function(selectedDate) {
                        $("#from").datepicker("option", "maxDate", selectedDate);
                    }
                }).datepicker('setDate', '+1w');
            });

function attemping.... to fitler when pages load

$(document).ready(function () {
                $filter = new Array();
                $from = new Date(Date.parse($("#from").datepicker('setDate', '-3w')));
                $to = new Date(Date.parse($("#to").datepicker('setDate', 'currentText')));
                $to = $to.setDate($to.getDate() + 1);

                if ($("#from").val()) {

                    $filter.push({ field: "DateEnrolled", operator: "islessthanorequalto", value: $to });
                }
                if ($("#to").val()) {

                    $filter.push({ field: "DateEnrolled", operator: "isgreaterthanorequalto", value: $from });
                }
                var grid = $("#grid").data("kendoGrid");
                grid.dataSource.load($filter);
            });
        });
4

1 に答える 1

0

試す

grid.dataSource.filter($filter) 

それ以外の

grid.dataSource.load($filter)

2012 年 2 月 11 日更新

これは、あなたがやろうとしていることのフィドルです。

フィルター アクションの前後のデータを確認できるように、PageLoad の代わりにボタンを押すとフィルターがアクションを実行するようにしました。

論理「and」フィルター オブジェクトを作成し、それにフィルターを追加する必要があります。

1) 「and」フィルター オブジェクトを作成する

var customFilter = {
    logic: "and",
    filters: []
};

2) オブジェクトにフィルタを追加します

customFilter.filters.push({
    field: "DOB",
    operator: "isgreaterthanorequalto",
    value: date1
});

customFilter.filters.push({
    field: "DOB",
    operator: "islessthanorequalto",
    value: date2
});

3) グリッドのデータ ソースにフィルターを設定する

$("#testGrid").data("kendoGrid").dataSource.filter[customFilter]);

最初の回答がとても怠惰で申し訳ありません。その日、私は急いでいたので、何か助けになるものを手に入れようとしました. これがより良い助けになることを願っています。

于 2012-10-30T15:56:59.110 に答える