2009-06-03 11 views
1

私はいくつかの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で、このボタンだけがある場合に限ります(ページに他のボタンがありますそれはスクロール位置です)。

答えて

0

保存が成功したと仮定すると、現在のフォームの状態を維持する他の理由はありません。同じページにリダイレクトして正常なフラグを渡すだけです。

成功メッセージを表示するには、querystringパラメータを使用します。

あなたが編集しているアイテムをキャプチャするためにリダイレクトURLを作成するのがより創造的でなければならないかもしれませんが、これはあなたのために役立ちます。

+1

場合によっては、最も簡単な回答が最適です。 – David

関連する問題