ASP.NET GridViewから呼び出される参照ウィンドウがあります。ボタンをクリックすると、DIVタグが表示され、アカウント番号を参照できます。問題は、GridViewに多くの行がある場合、デフォルトでDIVがページの上部近くに表示されるため、ユーザーは表示するためにスクロールする必要があるということです。起動時にスクロール位置に基づいてDIVタグを配置する
JavaScriptを書いて現在のスクロール位置を決定し、それに応じてウィンドウを配置しますが、スクロール位置を誤って表示するとゼロが表示されます。スクロール位置がまだページの開始時に決定されていないかどうかはわかりません。私はクリック時にスクロール位置に基づいてdivを移動しようとするページにリンクを配置しました。 JavaScriptは、アンカータグのonClickイベントの一部としてロードされるので、この時点でページは完全にロードされます。このリンクをクリックすると、適切なスクロール位置が決定され、ウィンドウが適切に再配置されます。
起動時に適切なスクロール位置を取得する別の方法はありますか?ここで
は...ここ
Dim strStartupScript As New System.Text.StringBuilder()
strStartupScript.Append("<script type=""text/javascript"">")
strStartupScript.Append("var scrOfY = 0; ")
strStartupScript.Append("scrOfY = getScrollXY(); ")
'strStartupScript.Append("alert(scrOfY); ")
strStartupScript.Append("var div = document.getElementById('divLookupAccount'); ")
strStartupScript.Append("var newTop = 400; ")
strStartupScript.Append("newTop = newTop + (scrOfY/2); ")
strStartupScript.Append("var num = newTop; ")
strStartupScript.Append("var n = num.toString(); ")
strStartupScript.Append("var s = n + 'px'; ")
strStartupScript.Append("div.style.top = s; ")
strStartupScript.Append("</script>")
Me.Page.ClientScript.RegisterStartupScript(Me.GetType(), "AccountLookupShow", strStartupScript.ToString)
は、スクリプトで参照「getScrollXY()」関数のコードです...私は起動スクリプトを登録するために使用していますVB.NETのコードである
function getScrollXY() {
var scrOfX = 0, scrOfY = 0;
if (typeof (window.pageYOffset) == 'number') {
//Netscape compliant
scrOfY = window.pageYOffset;
scrOfX = window.pageXOffset;
} else if (document.body && (document.body.scrollLeft || document.body.scrollTop)) {
//DOM compliant
scrOfY = document.body.scrollTop;
scrOfX = document.body.scrollLeft;
} else if (document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)) {
//IE6 standards compliant mode
scrOfY = document.documentElement.scrollTop;
scrOfX = document.documentElement.scrollLeft;
}
return (scrOfY);
}
これで私を助けることができる場合は、事前におねがいします。
ワウ!はい、それはずっと簡単で、魅力的に働きました。 JavaScriptもすべて削除できました。私はこれを前に見たことがないとは信じられません。ありがとう! –