- - PR -
div内に配置したGridViewのスクロール位置を取得したい
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-01-15 14:17
GridViewのヘッダーを固定するために、divの中にGridViewを配置しています。
GridViewの各行にチェックボックスを用意し、チェックをつけてPostBack後、 先頭の行に戻ってしまいます。 クリックした行にフォーカスを移してみたものの、少し動いた状態になります。 div内のスクロール位置を保持する方法があれば、教えていただけないでしょうか? http://jsajax.com/aspajax/Samples/061124VB-2.aspx ↑こちらを参考にしたのですが、Ajaxというコントロール(?)が 必要なようなので… | ||||
|
投稿日時: 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#と諸々 | ||||
|
投稿日時: 2009-01-15 15:55
よこけんさん、ありがとうございます。
やはりAjaxを利用するしかないようですね。 早速インストールしてみたのですが、web.configに警告がたくさん出てしまい… まだまだハードルが高そうです。 | ||||
|
投稿日時: 2009-01-15 16:26
参考までに
IE7でHTML上でしか確認していませんが、 javascriptで、スクロールバーを持つdivのscrollTopプロパティを見れば、 一応スクロール位置は取得できると思います。 (設定も可能です) ex) 取得 var scrTop = document.getElementById("divId").scrollTop; 設定 document.getElementById("divId").scrollTop = 200; ただ、自前でポストバック直前のscrollTopをhiddenなりに格納してサーバーに返してあげないといけないと思いますので最適かどうかはわかりません。 | ||||
|
投稿日時: 2009-01-15 18:43
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23527&forum=7
| ||||
|
投稿日時: 2009-01-16 09:33
デューンさん、todoさん、ありがとうございます。
参考のURLのコードも試してみたのですが、 GridViewのヘッダーを固定していることもあって うまくいきませんでした… とりあえず今回はあきらめます。 | ||||
|
投稿日時: 2009-01-16 10:10
横から失礼します。
とありますがどのようになったのでしょうか? ヘッダがスクロールされて消えてしまったりとか? 参考までにお聞かせ下さい。 もし、ヘッダがスクロールされるのであれば一つの方法として ヘッダをTABLEなどで作成してあたかもGridViewのヘッダのように 見せる事も出来ると思います。 | ||||
|
投稿日時: 2009-01-16 11:15
ヘッダーが固定されず、スクロールされるようになりました。
この方法も考えましたが… divの位置固定のコードを記述しても、何も変わらず、でした。 |