私はいくつかのAJAX、いくつかのバリデータ、およびコードビハインドページ(VB.NET)で行われたいくつかのビジネスルールのバリデーションを備えたASP.NET 3.5ページを持っています。コードビハインドページの制御下でASP.NETページをスクロールするにはどうすればよいですか?
バリデータは、エラーが検出されたときに「問題のある」コントロールにフォーカスを設定します。ビジネスルールに違反している
は、私は「その場で」いくつかのJavaScriptを生成し、Winformsの「MessageBox.Show」機能をシミュレートするためにそれを実行するには、次のコードを使用:
Sub DisplayMessages()
Dim lblError As New Label
lblError.Text = "<script language='javascript'>" & Environment.NewLine & "window.alert('"
+ strError + "')</script>"
Page.Controls.Add(lblError)
strError = ""
End Sub
(および適切なそのサブルーチンを必要に応じて呼び出す)
ここで、ユーザーが[保存]ボタンを押してすべてが正常であれば、ページは[保存]ボタンの下にスクロールしたままになります。私は、ページをトップに戻すことで、正常に終了したという表示をユーザに与えたい。
Sub ScrollPageToTop()
Dim strScroll As String
strScroll = "<script language='javascript'>" & Environment.NewLine & "window.scrollTo(0,0);</script>"
ClientScript.RegisterStartupScript(Me.GetType, "ScrollToTop", strScroll.ToString)
End Sub
: -
私は別のサブルーチンでこれまでのjavascriptの以前の使用に適応しようとした制御を追加するので、私はちょうどアドホックを実行することで、生のコードを入れてみました動作していないようでした"btnSave.Click"コードの最後に、すべてがうまくいけば、そのサブルーチンを呼び出します。
私が得るのは、ページをスクロールしてから、[保存]ボタンをクリックしたときの位置に戻っていくことです。
さまざまな理由で、 'MaintainScrollPositionOnPostback = "True"は、.aspxコードの上部にあるPageディレクティブにあります。私が本当に気に入っているのは、ページが上に戻るように、ちょっとだけ間違っているようにすることです。すべてがOKで、このボタンだけがある場合に限ります(ページに他のボタンがありますそれはスクロール位置です)。
場合によっては、最も簡単な回答が最適です。 – David