1

剣道ウィンドウ内に剣道ノックアウト グリッドがあります。グリッドは非常に基本的なもので、チェックボックス列と他の 3 つのテキスト列があります。チェック ボックス列は、次のように、グリッドのレコード モデルの監視可能なプロパティにバインドされます。

$model.isChecked = ko.observable(false);

グリッドのデータソースは、特定の JavaScript モデルの監視可能な配列です。グリッドには、10 レコードのページ サイズのページネーションがあり、スクロール可能です。

私が抱えている問題は、奇妙な理由で、グリッドの下部にあるチェックボックスをクリックすると、グリッドが上にスクロールし、チェックしたレコードが非表示になることです。

背後に同じロジックを持つ他のグリッドがあり、この動作は発生しません。さまざまなことを試しましたが、レコード モデルの監視可能なプロパティを変更するたびに、グリッドは同じことを行うようです。また、グリッドのスクロール イベントをサブスクライブしようとしましたが、スクロールをトリガーしたり、グリッドを単独で実行したりすることとの違いを見つけることができませんでした。

this: other questionで提案されていることも試しましたが、ちらつきのように見え、グリッドが一番上にスクロールしてから選択した行にスクロールするため、私が得た動作は良くありません。

それで、あなたの誰かが同様の問題に直面しましたか?

ありがとう、

4

2 に答える 2

1

これを試してみてください

グリッドの dataBound および dataBinding イベント内

dataBound = function (e) {
    var sender = e.sender;
    sender.content.scrollTop(sender.options.gridTop);
}

dataBinding = function (e) {
    var sender = e.sender;
    sender.options.gridTop = sender.content.scrollTop();
};
于 2015-03-11T15:00:31.550 に答える