2012-02-13 14 views
1

と同期していない私のjsFiddleをご覧ください掲載:jqGridフィルタ行がグリッド列

http://jsfiddle.net/chugh97/w3Kzt/1/

を私はスクロールが有効とshrinktofitでjqGrid一定の幅があります:偽を。今度は、jqGridフィルタのテキストボックスの4番目のフィールドにタブすると、フィルタのテキストボックスがjqGridの列で誤って処理されます。どのようにこれを修正することができますか?

+0

第2の問題について:どのWebブラウザを使ってテストしますか?私はGoogle ChromeとIE9でjsFiddleデモを試してみましたが、問題は見られません。スクロール位置はフィルタリングによって変更されませんでした。もう少し一般的な発言。 stackoverflowの主な目的は、*他のユーザーと*質問と回答を共有することです*。視点からは、あなたが持っている多くの問題を伴う累積的な質問の使用ではなく、*別の質問*を行う方が良いです。累積的な質問は、stackoverflowを検索することでそれほど良好ではありませんでした。 – Oleg

+0

@Olegコメントをいただきありがとうございます.2部目については質問を分けていただきます.1部については何か解決策がありますか? – chugh97

+1

jqGridにはキーボードナビゲーションのサポートが非常に制限されています。私は、あなたが記述する問題が存在することに同意します。問題を解決するには、いくつかのキーイベントまたはフォーカスイベントをバインドし、手動でスクロールを同期させる必要があります。 – Oleg

答えて

5

jqGridには、キーボード操作のサポートが非常に制限されています。あなたが記述している問題は、現在のjqGrid(4.3.1節)の実装に存在することに同意します。だから私の質問から+ 1。私は

$('#grid').closest('.ui-jqgrid-view') 
    .find('.ui-jqgrid-htable .ui-search-toolbar .ui-th-column') 
    .find('input, select') 
    .focus(function (e) { 
     var $header = $(e.target).closest('.ui-jqgrid-hdiv'), 
      $body = $header.siblings('.ui-jqgrid-bdiv'); 

     setTimeout(function() { 
      // we syncronize the scroll in the separate thread 
      // to be sure that the new scrolling value 
      // already set in the grid header 
      $body[0].scrollLeft = $header[0].scrollLeft; 
     }, 0); 
    }); 

setTimeoutの使用方法は、例えばGoogleのChromeウェブブラウザに必要であることを示唆している問題を解決するには

デモhereをご覧ください。

+0

優れた作品!!私はあなたが星だと思う!非常に高く評価。 – chugh97

+0

@ chugh97:ありがとうございました。どういたしまして! – Oleg

関連する問題