我在asp.net中遇到一个有关滚动的问题。我希望能到达到达Updatepanel之前的位置,但我真的无法到达那里,而这是在放大chrome(110%之后)之后发生的。
这在我的本地站点中有效,但是当我将其上载到服务器时它不起作用。
<ajaxToolkit:ModalPopupExtender ID="modalPopup" runat="server" TargetControlID="UpdateProgress"
PopupControlID="UpdateProgress" BackgroundCssClass="modalPopup" />
<asp:UpdatePanel ID="upnComments" runat="server">
<ContentTemplate>
<asp:HiddenField ID="HiddenQuestion" runat="server"></asp:HiddenField>
<div class="survey_panel">
<asp:Panel ID="PlaceHolder1" runat="server" BorderWidth="0" HorizontalAlign="Left"
EnableViewState="False">
</asp:Panel>
<asp:Panel ID="pnlSubQuestion" runat="server" Visible="false" HorizontalAlign="Left">
</asp:Panel>
<asp:Label ID="lblError" runat="server" Visible="False" ForeColor="Red"></asp:Label>
<asp:Label ID="lblError2" runat="server" Visible="False" ForeColor="Red"></asp:Label>
</div>
</ContentTemplate>
</asp:UpdatePanel>
我也为此编写了javascript
<script type="text/javascript">
var xPos, yPos;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
var popup = $find('<%= modalPopup.ClientID %>');
if (popup != null) {
popup.show();
}
if ($get('ctl00_ContentPlaceHolder1_upnComments') != null) {
xPos = $get('ctl00_ContentPlaceHolder1_upnComments').scrollLeft;
yPos = $get('ctl00_ContentPlaceHolder1_upnComments').scrollTop;
}
}
function EndRequestHandler(sender, args) {
var popup = $find('<%= modalPopup.ClientID %>');
if (popup != null) {
popup.hide();
}
if ($get('ctl00_ContentPlaceHolder1_upnComments') != null) {
$get('ctl00_ContentPlaceHolder1_upnComments').scrollLeft = xPos;
$get('ctl00_ContentPlaceHolder1_upnComments').scrollTop = yPos;
}
}
</script>
我也写了
protected void Page_Load(object sender, EventArgs e)
{
Page.MaintainScrollPositionOnPostBack = true;
}