我有一個ASP.NET 3.5頁面,帶有一些AJAX,一些驗證器和一些在代碼隱藏頁面(VB.NET)中完成的業務規則驗證。如何在代碼隱藏頁面的控制下滾動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
(及相應的必要時調用該子例程)
現在,當用戶點擊「保存」按鈕並且一切正常時,頁面保持向下滾動到保存按鈕所在的底部。我想通過將頁面滾動回頂部向用戶表明事情已成功完成。
我想以前使用JavaScript與另一子程序適應這一點 - 增加控制似乎沒有工作,所以我想只是把原代碼執行專案:
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
在「btnSave.Click」代碼的末尾,如果一切正常,調用該子例程。
我得到的是頁面滾動到頂部,然後返回到保存按鈕被點擊時的位置。
由於各種原因,'MaintainScrollPositionOnPostback ='True''位於.aspx代碼頂部的Page指令中。我真正喜歡的是讓這個FALSE一段時間,以便頁面重置在頂部 - 再次,只有當一切正常並且僅用於該按鈕時(頁面上還有其他按鈕需要頁面保留它是滾動位置)。
有時最簡單的答案效果最好。 – David 2009-06-03 16:37:03