1

ajaxを使用してモーダルポップアップウィンドウとして開くaspパネルがあります。このパネル内には、ポストバックできるいくつかのユーザーコントロールがあります。たとえば、カスタム編集と追加を可能にするグリッドビューです。

ただし、パネルのサイズが原因で、ユーザーがaspパネルをスクロールして対応するグリッドビューを編集できるように、スクロールバーを導入する必要がありました。パネル内のスクロールバーが繰り返し上部に配置され、スクロール位置を維持していませんが、ポストバック時に。

私の質問は; thisModal Popup Extender Panel内でスクロール位置を維持する方法はありますか?

4

3 に答える 3

2

(参照用に)使用されたコードは次のとおりです。

var iST;
$(document).ready(function() {
getScrollPosition();
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(getScrollPosition);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(setScrollPosition);
});

function pageLoad() {
    var popup = $find('<%=MODALPOPUPNAME.ClientID%>');
    popup.add_shown(setScrollPosition);
}

function getScrollPosition() {
    iST = $("#<%=PANELNAME.ClientID %>").scrollTop();
}
function setScrollPosition() {
    $("#<%=PANELNAME.ClientID %>").scrollTop(iST + 20);
}

ありがとう。

于 2012-08-30T14:33:21.767 に答える
0

数時間を費やした後、私はこれを達成することができました。pnlPopupというポップアップパネルにあるmyDivというこのdivがあるとします。myDivにscollがあるたびに、スクロールされた位置をマークダウンするJavaScriptが必要です。hfScrollPという非表示の要素でこのスクロールされた位置をマークダウンします。

<script type="text/javascript">
    function markScrollPosition() {
        var div = document.getElementById("myDiv").scrollTop;
        document.getElementById('<%=hfScrollP.ClientID %>').value = div;
    }
</script>

<asp:HiddenField ID = "hfScrollP" runat = "server" />
<asp:Panel ID="pnlPopup" runat="server"  Width="750px" style="display:none;">

    <div id="myDiv" style="height: 350px; width: 700px;overflow: auto;" 
          onscroll="markScrollPosition();">

    </div>

</asp:Panel>

そして、クリックするとポップアップを開くボタンとモーダルポップアップエクステンダーがあります。

<asp:Button ID="btnShowModalPopup" runat="server" Text="Show" />
<ajaxToolkit:ModalPopupExtender ID="mpePopup" runat="server" 
   TargetControlID="btnShowModalPopup" 
   PopupControlID="pnlPopup" DropShadow="True" BackgroundCssClass="modalBackground"  
   Enabled ="true">
</ajaxToolkit:ModalPopupExtender>

ポストバックがあり、ポップアップが表示されるたびにポップアップのスクロール位置を設定するには、このJavaScriptが必要です。

<script type="text/javascript" language="javascript">
                function pageLoad() {
                    var modal = $find('<%=mpePopup.ClientID %>');
                    $find('<%=mpePopup.ClientID %>').add_shown(
                        function () {                       
                     $('#myDiv').scrollTop(document.getElementById('<%=hfScrollP.ClientID %>').value);
                    }
                       );
                }
 </script>

コードビハインド。

  Private Sub btnShowModalPopup_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnShowModalPopup.Click
            //Do your necessary processing
            mpePopup.show();
        End Sub

それでおしまい。ポップアップが表示されると、最後にマークされた下にスクロールされた位置にスクロールバックします。それが役に立てば幸い :)

于 2019-01-31T03:34:49.680 に答える
-1

特定のDivのJavaScriptコードを変更できます。

<script type="text/javascript">
    function pageLoad() {
        $('#DataDiv').scrollTop(document.getElementById('<%=hfScrollT.ClientID %>').value).scrollLeft(document.getElementById('<%=hfScrollL.ClientID %>').value);
    }
</script>

お役に立てば幸いです。

于 2019-07-02T20:50:35.313 に答える