- - PR -
スクロール付きDataGrid にてポストバッグ時に表示状態を保持したい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-07-26 18:43
いつも参考にさせて頂いています。
http://www.atmarkit.co.jp/fdotnet/dotnettips/110scrolldg/scrolldg.html ([ASP.NET]DataGridコントロールにスクロールバーを付けるには?) を参考にして、DataGridを縦スクロール表現するようにしました。 その際、DataGridに行選択の機能を設定した場合、 スクロールして最終レコードを選択し、ポストバッグ後再表示するときに、 選択した行が見えない状態(スクロールが最上に戻る)になってしまいます。 選択した時の表示状態を保持したいのですが、 何か良い方法はご存知ないでしょうか。 よろしくお願い致します。 | ||||
|
投稿日時: 2004-07-26 19:20
onscrollイベントにハンドラを追加します。
<div onscroll="scrollEvent()"> イベントハンドラにて、スクロール位置をhiddenなinputに記録します。 bodyのonloadイベントにて、hiddenなinputから情報を引き出し、スクロールさせます。 下の「www」のリンクに行くと、ページで同じことをしているコードがありますから、対象を換えればいい…のではないかな? | ||||
|
投稿日時: 2004-07-26 22:15
Jittaさん、ありがとうございます。
参考に挑戦してみましたが、力不足か、うまくできません。 ScrollToメソッドは、windowオブジェクトにしか適用できないのでしょうか。 OnLoadイベントにてスクロールさせたいのが、 DataGridを格納しているFlowLayoutPanelのスクロール なのですが、不可能なのでしょうか? よろしくお願い致します。 | ||||
|
投稿日時: 2004-07-27 08:00
あ…しまったぁ、div要素のメソッドを確認してないや…(ごそごそ)…失礼しました。div要素にscrollToメソッドはありませんでした。 その代わりといってはなんですが、scrollIntoViewメソッドを見つけました。表示されていた位置が表示されるわけではありませんが、少なくとも表示されるようにはできそうです。 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpisdk/dhtml/references/methods/scrollintoview.asp しかし、IE専用みたい。。。 | ||||
|
投稿日時: 2004-07-27 13:21
scrollTopが使えるんじゃないですかね。IE限定だったかは分かりませんが。
・DIVタグ <DIV id="table1" onscroll="fcScroll_Y(this)" 〜〜〜> ・javascript関数 //スクロール保持 function fcScroll_Y(Panel) { document.Form1.HIDDEN1.value = Panel.scrollTop; } ・制御 Dim script As New System.Text.StringBuilder() script.Append("<script language=""JavaScript"">") script.Append("document.getElementById('table1').scrollTop = '") script.Append(HIDDEN1.Value) script.Append("';") script.Append("</script>") Page.RegisterStartupScript("authenticated", script.ToString) ----- 今週から.NETの作業じゃなくなりました。 | ||||
|
投稿日時: 2004-07-27 18:18
jittaさん、きちさん、ありがとうございました。
参考に実現することができました!! とりあえずは、IEベースですが! |
1