0

不必要な詳細には触れずに、私が抱えている基本的な問題について説明しようと思います。Kendo-UI Web を評価し、Grid を操作しています。

詳細行が展開されているかどうかに基づいて、ページ列のサイズ変更を行います。

私が気づいている動作は、非常に初めて「detailExpand」イベントが行ごとにトリガーされることです。detailExpand のコードが実行される前に、DOM が新しい要素で更新されていることがわかります。行が展開されるのは初めてなので、これは実際には実行中の detailInit に過ぎないと推測しています。その後、行を再度展開すると、detailExpand イベントが最初に実行されてから、行が表示されます。(コードは、単に .show() を実行しているように見えます。これは、高さの変化を適切に計算できないことを意味します。

detailCollapse と同じです。イベント コードは、詳細行が非表示になる前に発生します。そのため、詳細行のサイズと同じ余分なスペースができてしまいます。それらが常に同じサイズである場合、これは問題になりません。サイズを予測して、それに基づいて縮小または拡大することができます。そうではありません。

要するに、単純に AfterRowExpanded イベントを作成できれば、すべてが解決します。

kendo ui JS は十分に簡単にカスタマイズできると思いますが、JS などを再度最小化する必要があります。何か考えはありますか?

4

1 に答える 1

0

最新バージョンでは、詳細行の展開が完了するとdetailExpandがトリガーされるように見えますが、詳細行が非表示になる前にdetailCollapseが実行されます。

回避策として、ミリ秒を指定せずに setTimeout を使用してロジックの実行を遅くすることをお勧めします (行が実際に非表示/表示された直後に実行されます)

例えば

$('#grid').data().kendoGrid.bind('detailCollapse',function(e){
    setTimeout(function(){
       //code goes here
    })
})
于 2012-11-20T19:31:24.973 に答える