none
ボタンクリックするとページ先頭にいってしまう RRS feed

  • 質問

  • visual web developer 2010 Expressを使用してWeb アプリケーションプロジェクトを作成しています。
    環境は以下です。
    OS:Windows8 32bit
    SQLServer:microsoft SQL SERVER 2008 R2 Express版
    (SQL Server Management Studioを使用)
    IISのバージョン:Version7.5.7600.16385
    .NET のバージョン:Microsoft .NET Framework 4
    使用ブラウザ:IE,Firefox,Chrome(すべて最新バージョン)
    使用言語:VB

    DataListを配置し,以下のような感じで,画像リストを作成しています。
    (□が画像です。)
    □□□
    □□□
    □□□
    □□
    それぞれの画像に「選択」ボタンを配置し,
    クリックすると画像の説明文が表示されるというものです。
    スクロールしてたどり着いた下の方の画像も,
    「選択」ボタンや「戻る」ボタン(説明文表示から画像表示に戻るボタン)をクリックすると,
    ページの先頭に戻ってしまいます。
    上の方はそれでもいいのですが,下の方になるといちいち先頭に戻ってしまい不便です。
    ボタンクリックしても,現在の場所にとどまるような方法はありませんか?

    CDは以下です。

    XX.aspx
       <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" >
            <ItemTemplate>
                <asp:Button ID="Button1" runat="server" CommandName="Select" Text="選択" /><br />
                <asp:Image ID="Image1" runat="server" Height="250px"  ImageUrl='<%# Bind("picture") %>' />
            </ItemTemplate>
            <SelectedItemTemplate>
            <asp:Button ID="Button1" runat="server" CommandName="Select" Text="戻る" onclick="Button1_Click" />
            <asp:Label ID="Label4" runat="server" Text='<%# Eval("text") %>' />
                </SelectedItemTemplate>
        </asp:DataList>


    XX.aspx.vb
        Protected Sub DataList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DataList1.SelectedIndexChanged
            DataList1.DataBind()
        End Sub

        Protected Sub Button1_Click(sender As Object, e As EventArgs)
            DataList1.SelectedIndex = -1
            DataList1.DataBind()
        End Sub
    2014年8月26日 6:07

回答

すべての返信

  • web.configに maintainScrollPositionOnPostBack="true" を設定することで対処できる場合があります。
    • 回答としてマーク masu-nona 2014年8月26日 6:55
    2014年8月26日 6:13
  • 佐祐理 さま

    早々にお返事いただきありがとうございます!

    下記で無事に先頭ページに戻らないようにすることができました!

       Protected Sub DataList1_PreRender(sender As Object, e As EventArgs) Handles DataList1.PreRender
            MaintainScrollPositionOnPostBack = "true"
        End Sub

    ありがとうございました!!

    2014年8月26日 6:55
  • 特定のページだけ指定する場合は普通 @ Page ディレクティブで指定します。

    @ Page
    http://msdn.microsoft.com/ja-jp/library/vstudio/ydy4x04a(v=vs.100).aspx


    説明文が短いのであれば Image.ToolTip プロパティにそれを設定して、マウスが画像の上に移動したときに表示されるようにしてはいかがですか? いちいちポストバックして説明文を出すよりその方がスマートだと思いますが。

    • 回答としてマーク masu-nona 2014年9月3日 7:29
    2014年8月26日 7:17
  • > SurferOnWww さま

    >@ Page ディレクティブ

    全然知らないので勉強したいと思います。。。

    >Image.ToolTip プロパティ

    Tooltip機能知らなかったです!
    さっそくやってみました。
    とても便利なのでこちらのやり方でやっていくことにしました!

    ありがとうございました!!
    2014年9月3日 7:29