8

剣道グリッドのクリック イベントを取得しようとしているので、シフトと ctrl クリックにバインドできます。ドラッグ アンド ドロップをサポートしていないため、Kendo が提供する固有の複数選択を使用できません。dataBound イベントの後に関数を作成すると、クリック時に関数が呼び出されますが、これは典型的なクリック イベントではありません。

var onDataBound = function () {
    selectItem.apply(this);
}

grid.dataBound = onDataBound;

var selectItem.apply = function (e) {
    console.log(e);
}

何かご意見は?前もって感謝します。

4

4 に答える 4

10

を初期化した後Grid、ハンドラーをクリック イベントにバインドする必要があります。

例:

$("#grid").on("click", "table", function(e) {
    console.log("clicked", e.ctrlKey, e.altKey, e.shiftKey);
});

以下を使用できます。

  • e.ctrlKeyctrlが押されたかどうかを検出します。
  • e.altKeyaltが押されたかどうかを検出します。
  • e.shiftKeyshiftが押されたかどうかを検出します。

テーブルの本体でのみクリックを検出したい場合は、"table"または"tbody"に置き換えることもできます"td"

Jsfiddle の例

于 2013-10-10T20:46:59.543 に答える
3

dataBoundグリッドを宣言するときにイベントを使用します。

grid = $("#grid").kendoGrid({
    ...
    ,dataBound=onDataBound
});

var onDataBound = function(e)
{
    $("#grid").find("tr").click(selectItem.apply);
};

var selectItem.apply = function (e) {
    var dataItem = $("#grid").data("kendoGrid").dataItem(this);
    if(e.ctrlKey)
       alert('Ctrl + click on ' + dataItem.column1);
}

dataItem渡すことができるバインドされたデータ項目です。

于 2013-10-10T21:00:56.050 に答える