- PR -

GridViewの選択した位置の保持について

投稿者投稿内容
BELL
会議室デビュー日: 2005/07/13
投稿数: 11
投稿日時: 2007-07-06 17:59
こんにちは。
GridViewにデータがバインドされており各行を選択出来る様に
なっております。

選択後、該当の行の項目を複数のテキストボックスへ表示しております。

その際に、GridViewをスクロールして下の方の行を選択しても
テキストボックスへデータ表示後に、一番上の行に戻ってしまいます。

選択はされているのですが、スクロールバーが一番上に戻ってしまい
選択している行が見えなくなっています。

選択した時に、そのまま位置を固定することは出来ないでしょうか?

ご存じの方お見えでしたら是非とも教えていただきたくお願い申し上げます。

IIJIMAS
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 77
投稿日時: 2007-07-06 18:16
Pageの
Page.MaintainScrollPositionOnPostBack プロパティ
http://msdn2.microsoft.com/ja-jp/library/system.web.ui.page.maintainscrollpositiononpostback(VS.80).aspx
をtrueにしておくとどうでしょうか。
BELL
会議室デビュー日: 2005/07/13
投稿数: 11
投稿日時: 2007-07-06 18:46
IIJIMAS様

 早速のご回答有り難うございました。

 試してみたのですが、駄目でした...

 現状の状態ですが

 アップデートパネルの中にGridViewとテキストボックスが設置されております。
 GridViewのSelectedIndexChangedで選択をクリックした際にテキストボックスに
 選択行の内容を移送します。

 そうしますと、GridViewの位置が一番上まで戻ってしまいます。

 MaintainScrollPositionOnPostBack=trueはページのロード時にもSelectedIndexChangedの中にも記述しましたが結果は変わりませんでした。

 お手数をおかけしますが、ご教授の程よろしくお願い申し上げます。

かるあ
ぬし
会議室デビュー日: 2003/11/16
投稿数: 1190
お住まい・勤務地: センガワ→ムサシノ
投稿日時: 2007-07-06 22:23
引用:

BELLさんの書き込み (2007-07-06 18:46) より:
IIJIMAS様

 アップデートパネルの中にGridViewとテキストボックスが設置されております。
 GridViewのSelectedIndexChangedで選択をクリックした際にテキストボックスに
 選択行の内容を移送します。


Ajax Extensions を使っているなら最初に書いてほしい。
で、試してみましたがこちらの環境ではスクロールしません。
他にに言ってないことはないですか?

まずは新規プロジェクトを作って現在のプロジェクトとどこが違うのかを比べてみてはどうですか?
_________________
かるあ のメモスニペット
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2007-07-07 06:15
かるあさんのおっしゃるように、パーシャルポストバックを使用しているのなら
スクロールされないはずですよ。
_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
BELL
会議室デビュー日: 2005/07/13
投稿数: 11
投稿日時: 2007-07-07 10:26
かるあ様 Access様

 返信いただき有り難うございます。
 1からプロジェクトを作り試してみましたが、やはり駄目でした。
 
 もう一度、良く状況を確認しましたところ、
 アップデートパネルの中にパネルをPanelを設置しスクロールバーを
 Verticalに設定した中にGridViewを入れておりました。
 (1回で説明できず申し訳ありません。)

 この状態ですと、選択後、一番上に戻ってしまいます。

 記述している文は
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    Page.MaintainScrollPositionOnPostBack = True
End Sub
  
  と

Private Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.SelectedIndexChanged


    Me.TextBox1.Text = Me.GridView1.SelectedRow.Cells(1).Text

End Sub

 のみです。

 よろしくお願い申し上げます。


IIJIMAS
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 77
投稿日時: 2007-07-07 11:21
引用:

 もう一度、良く状況を確認しましたところ、
 アップデートパネルの中にパネルをPanelを設置しスクロールバーを
 Verticalに設定した中にGridViewを入れておりました。



UpdatePanelの中にPanelを入れるのではなくて、
Panelの中にUpdatepanelを入れるようにしてみてはどうでしょうか。

BELL
会議室デビュー日: 2005/07/13
投稿数: 11
投稿日時: 2007-07-07 11:48
IIJIMAS様

 有り難うございました。無事出来ました。
 
                 金川賢一朗

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