- PR -

スクロール付きDataGrid にてポストバッグ時に表示状態を保持したい

1
投稿者投稿内容
e3000
会議室デビュー日: 2004/02/06
投稿数: 19
お住まい・勤務地: 東京
投稿日時: 2004-07-26 18:43
いつも参考にさせて頂いています。

http://www.atmarkit.co.jp/fdotnet/dotnettips/110scrolldg/scrolldg.html
([ASP.NET]DataGridコントロールにスクロールバーを付けるには?)
を参考にして、DataGridを縦スクロール表現するようにしました。

その際、DataGridに行選択の機能を設定した場合、
スクロールして最終レコードを選択し、ポストバッグ後再表示するときに、
選択した行が見えない状態(スクロールが最上に戻る)になってしまいます。
選択した時の表示状態を保持したいのですが、
何か良い方法はご存知ないでしょうか。

よろしくお願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-26 19:20
 onscrollイベントにハンドラを追加します。

<div onscroll="scrollEvent()">

 イベントハンドラにて、スクロール位置をhiddenなinputに記録します。

 bodyのonloadイベントにて、hiddenなinputから情報を引き出し、スクロールさせます。



 下の「www」のリンクに行くと、ページで同じことをしているコードがありますから、対象を換えればいい…のではないかな?
e3000
会議室デビュー日: 2004/02/06
投稿数: 19
お住まい・勤務地: 東京
投稿日時: 2004-07-26 22:15
Jittaさん、ありがとうございます。

参考に挑戦してみましたが、力不足か、うまくできません。

ScrollToメソッドは、windowオブジェクトにしか適用できないのでしょうか。
OnLoadイベントにてスクロールさせたいのが、
DataGridを格納しているFlowLayoutPanelのスクロール
なのですが、不可能なのでしょうか?

よろしくお願い致します。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-07-27 08:00
引用:

e3000さんの書き込み (2004-07-26 22:15) より:

ScrollToメソッドは、windowオブジェクトにしか適用できないのでしょうか。


 あ…しまったぁ、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専用みたい。。。
きち
常連さん
会議室デビュー日: 2003/12/17
投稿数: 41
投稿日時: 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の作業じゃなくなりました。
e3000
会議室デビュー日: 2004/02/06
投稿数: 19
お住まい・勤務地: 東京
投稿日時: 2004-07-27 18:18
jittaさん、きちさん、ありがとうございました。

参考に実現することができました!!
とりあえずは、IEベースですが!
1

スキルアップ/キャリアアップ(JOB@IT)