0
var showEmps = function (did) {
$("#myGrid").kendoGrid({
                        sortable: true,
                        pageable: true,
                        scrollable: true,
                        columnMenu: true,
                        filterable: {
                            extra: false
                        },
                        dataSource: {
                            transport: {

                                read: "/Employee/ShowEmpByDept",
                                dataType: "json",
                                parameterMap: function (data1, type) {

                                    var data = {
                                       deptid: did
                                    }
                                    return data;
                                }
                            },
                            schema: {
                                model: {
                                    fields: {
                                        EmpID: { type: "number" },
                                        JOD: { type: "date" },
                                        LastName: { type: "string" },
                                        Dept: { type: "string" },
                                    }
                                }
                            },
                            pageSize: 15
                        },
                        columns: [
                        {
                            field: "EmpID",
                            title: "Emp ID",
                            filterable: false,
                            headerTemplate: '<span title="Emp ID">Emp ID</span>'
                        },
                        {
                            field: "JOD",
                            title: "JOD",
                            width: 90,
                            template: '#= kendo.toString(JOD,\"MM/dd/yyyy\") #',
                            filterable: { extra: true }
                        },
                        {
                            field: "LastName",
                            title: "Last Name",
                        },
                        {
                            field: "Dept",
                            title: "Dept",

                        }

                        ],

                    }).data("kendoGrid");
            };
   });

(showEmps(1)) のようなドキュメント準備完了メソッドで showEmps メソッドを呼び出しています

これで、部門のリストを含むドロップダウンができました。

ドロップダウンを変更するとき、選択したドロップダウン部門でグリッドを更新するために、dept id を showEmps メソッドに渡したい

4

1 に答える 1

2

してはいけないこと:

var grid1 = jQuery("#mygrid").kendoGrid({
     dataSource: dataSource,
});

ご覧のとおり、これにより新しい Grid オブジェクトが作成されます。

あなたがすべきことは次のとおりです。

var grid1 = jQuery("#mygrid").data("kendoGrid");
grid1.dataSource.data(newData);

すでに新しいデータをロードしている場合、または単純に:

dataSource.read();

新しい読み取りをトリガーする場合 (これにより、グリッドが自動的に更新されます)。

実際のリクエストを構成するためreadに で使用できるオブジェクトを引数として受け取る場合があることに注意してください。parameterMapしたがって、次のようなことができます:

var ds = new kendo.data.DataSource({
    transport: {
        read: "/Employee/ShowEmp",
        parameterMap: function (data, type) {
            if (type === "read") {
                // If no empId is provided it uses 1, otherwise uses the one passed as argument
                data.empId = data.empId ? data.empId : 1;
                return data;
            }
        }
    }
});

// Read default empId (this is the same that it is executed when grid is initialized)
ds.read();
// Read employee with Id = 2
ds.read({ empId: 2 });

かなりエレガント!!

于 2014-09-01T13:44:58.097 に答える