- PR -

div内に配置したGridViewのスクロール位置を取得したい

投稿者投稿内容
まなか
常連さん
会議室デビュー日: 2008/04/17
投稿数: 37
投稿日時: 2009-01-15 14:17
GridViewのヘッダーを固定するために、divの中にGridViewを配置しています。
GridViewの各行にチェックボックスを用意し、チェックをつけてPostBack後、
先頭の行に戻ってしまいます。
クリックした行にフォーカスを移してみたものの、少し動いた状態になります。
div内のスクロール位置を保持する方法があれば、教えていただけないでしょうか?

http://jsajax.com/aspajax/Samples/061124VB-2.aspx
↑こちらを参考にしたのですが、Ajaxというコントロール(?)が
必要なようなので…
よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2009-01-15 14:44
ページ自体のスクロール位置だったら
Page.MaintainScrollPositionOnPostBack プロパティ (System.Web.UI)
が使えると思いますが (IE 以外ではダメかも)、
そうではなく Div 内のスクロール位置ですよね。

素直に Ajax を利用するのが良いと思います。
Ajax はコントロールではなく、一種の技術の名前です。
JavaScript 及び XMLHttpRequest を使ってサーバーに非同期通信を行いますので、画面の全体的な更新が走りません。
自前で JavaScript 及び XMLHttpRequest を使って実装することも可能ですが、
MS の ASP.NET Ajax を使えばとても簡単 (JavaScript を書かず) に Ajax を取り入れることができます。
VS 2008 には標準搭載されていますし、VS 2005 でも追加インストールができます。

_________________
C#と諸々
まなか
常連さん
会議室デビュー日: 2008/04/17
投稿数: 37
投稿日時: 2009-01-15 15:55
よこけんさん、ありがとうございます。
やはりAjaxを利用するしかないようですね。

早速インストールしてみたのですが、web.configに警告がたくさん出てしまい…
まだまだハードルが高そうです。
デューン
大ベテラン
会議室デビュー日: 2004/04/21
投稿数: 174
お住まい・勤務地: Tokyo
投稿日時: 2009-01-15 16:26
参考までに

IE7でHTML上でしか確認していませんが、
javascriptで、スクロールバーを持つdivのscrollTopプロパティを見れば、
一応スクロール位置は取得できると思います。
(設定も可能です)

ex)
取得
var scrTop = document.getElementById("divId").scrollTop;
設定
document.getElementById("divId").scrollTop = 200;

ただ、自前でポストバック直前のscrollTopをhiddenなりに格納してサーバーに返してあげないといけないと思いますので最適かどうかはわかりません。
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2009-01-15 18:43
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23527&forum=7
まなか
常連さん
会議室デビュー日: 2008/04/17
投稿数: 37
投稿日時: 2009-01-16 09:33
デューンさん、todoさん、ありがとうございます。

参考のURLのコードも試してみたのですが、
GridViewのヘッダーを固定していることもあって
うまくいきませんでした…

とりあえず今回はあきらめます。
手探り
常連さん
会議室デビュー日: 2006/10/20
投稿数: 24
投稿日時: 2009-01-16 10:10
横から失礼します。

引用:
参考のURLのコードも試してみたのですが、
GridViewのヘッダーを固定していることもあって
うまくいきませんでした…


とありますがどのようになったのでしょうか?
ヘッダがスクロールされて消えてしまったりとか?
参考までにお聞かせ下さい。

もし、ヘッダがスクロールされるのであれば一つの方法として
ヘッダをTABLEなどで作成してあたかもGridViewのヘッダのように
見せる事も出来ると思います。
まなか
常連さん
会議室デビュー日: 2008/04/17
投稿数: 37
投稿日時: 2009-01-16 11:15
ヘッダーが固定されず、スクロールされるようになりました。
引用:

もし、ヘッダがスクロールされるのであれば一つの方法として
ヘッダをTABLEなどで作成してあたかもGridViewのヘッダのように
見せる事も出来ると思います。



この方法も考えましたが…
divの位置固定のコードを記述しても、何も変わらず、でした。

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