2017-10-24 24 views
0

私は剣道グリッドからscrollLeft/scrollTopポジションデータを収集しようとしています。剣道グリッドのスクロール位置を取得する方法

... 0当時、私はこれで撮影した位置に:0と左を:その後、私は一番上までスクロールして、私のグリッドを強制することにより、自動ポジショニングを証明したい

var mainGrid = $("#mainGrid").data("kendoGrid"); 
var testgrid = $("#mainGrid div.k-grid-content"); 
topoffset = testgrid.offset(); 

//which gives me these numbers but they do not look correct... 
//left 44.959999084472656 Number 
//top 174.55999755859375 Number 

:これまでのところ私はこれを持っています

//send to top 
testgrid.scrollTop(0); 
testgrid.scrollLeft(0); 

グリッドが予想通りに上にスクロールしません。

//send to previous position 
testgrid.scrollTop(topScroll); 
testgrid.scrollLeft(leftScroll); 

グリッドは、前の位置に戻ってスクロールしません。

剣道グリッドの位置にスクロールを強制することは許可されていないようです。

+0

私はちょうど開発ツールでそれをやったのですか?ページに留まり、それを行うか、ボタンをクリックして現在のスクロールバーの位置を取得してからその位置に戻るようにしましたか? – Keith

+0

よくある問題私はグリッドをリフレッシュした後です。剣道は自動的にscrollTop(0)とscrollLeft(0)に進みます。だから私はそれを編集されたレコードに送り返そうとしている。その本当の痛み。なぜ剣道がそれをするのかわからない。 – NeoSketo

答えて

2

まず、データバインドされたイベントでこれを取得する必要があります。だから、あなたはそれが以前にあなたが行うことができます設定したい場合:

databound: function(e){ 
    $('.k-grid-content').scrollTop('150'); 
    setTimeout(function() { 
     $('.k-grid-content').animate({ 
      scrollTop: 0 
     }, 1000); 
    }, 2000); 
    setTimeout(function() { 
     $('.k-grid-content').animate({ 
      scrollTop: 200 
     }, 1000); 
    }, 5000); 
}); 

をそして、ちょうど(私はちょうどscrollTopスプライトを使用していますがバリエーションを使用することができます)あなたは高速でスクロールする距離を欲しいものに値を切り替えます。グリッドを最初に再生し、次に使用する場所をキャプチャする場合:

次に、sessionStorage変数を使用して保存し、databoundイベントに入力します。更新前にグリッドの位置を取得するには、次の操作を実行します。

$(document).on('keydown', function(){ 
    $('.k-grid-content').scrollTop(); // capture how far from top 
    $('.k-grid-content').scrollLeft(); // capture how far from left 
}); 

これはデータバインドイベントには必要ありません。

+0

Dojoを提供できますか?またはフィドル? – NeoSketo

+0

これは私の元の質問https://stackoverflow.com/questions/46920023/kendo-grid-jumps-to-top-after-onsaveに役立つと思った。それが更新された後は、グリッドの最上部に移動してから、保存された行に戻ります。剣道は非常にclunkyです! – NeoSketo

+0

だから私はあなたのためにこのdoesntの仕事を取る? – Keith

関連する問題