0

ページの下部に、プロパティが設定されているチェックボックスがありますAutopostbacktrue

そのチェックボックスをオンまたはオフにすると、スクロールバーが現在の位置にとどまる代わりに上がります.ASP.Netでこの種の問題を防ぐ方法は?

いくつかの解決策を検索して試してみましたが、うまくいきません..ここに私が行っている解決策のいくつかがあります..

このJavaScriptを試してみましたが、効果がありません..

<script type="text/javascript">
        var xPos, yPos;
        var prm = Sys.WebForms.PageRequestManager.getInstance();


        function BeginRequestHandler(sender, args) {
            if ($get('<%= Panel1.ClientID %>') != null) {
                xPos = $get('<%=Panel1.ClientID %>').scrollLeft;
                yPos = $get('<%=Panel1.ClientID %>').scrollTop;
            }
        }

        function EndRequestHandler(sender, args) {
            if ($get('<%= Panel1.ClientID %>') != null) {
                $get('<%=Panel1.ClientID %>').scrollLeft = xPos;
                $get('<%=Panel1.ClientID %>').scrollTop = yPos;
            }


        }
            prm.add_beginRequest(BeginRequestHandler);
            prm.add_endRequest(EndRequestHandler);
</script>

これでも…入れましたMaintainScrollPositionOnPostback

<%@ Page Title="Sample" Language="C#" MasterPageFile="~/MasterPage.master"
    AutoEventWireup="true" CodeFile="sample.aspx.cs" Inherits="sample_Default" MaintainScrollPositionOnPostback="true" EnableViewState="true"%>

この..

protected void Page_Load(object sender, EventArgs e)
{
        MaintainScrollPositionOnPostBack = true;
        //some codes that is not important to my question...
}
4

1 に答える 1

0

例として Panel1 の前に DIV を使用します。

<div id="ItmeTypeDiv" style="width: 100%; height: 347px; overflow: auto" onscroll="javascript:document.getElementById('ItmeTypeDivScroll').value = this.scrollTop">

  YOUR PANEL
</div>
<asp:HiddenField ID="ItmeTypeDivScroll" runat="server" ClientIDMode="Static"/>

コードビハインドのページ読み込み中

ScriptManager.RegisterStartupScript(this, GetType(), "LoadItemTypeScroll", "LoadItemTypeScroll();", true);

これは追加する必要があるJavaScriptです

function LoadItemTypeScroll() {
try {
    document.getElementById('ItmeTypeDiv').scrollTop = document.getElementById('ItmeTypeDivScroll').value;
}
catch (e) { }
}
于 2013-01-30T04:47:44.210 に答える