我有一个gridview放在ASP.NET面板。
面板和Gridview都在UpdatePanel中。
gridview中有一列导致部分PostBack。
我想在这些回发页面上维护面板滚动位置。
有什么办法吗
问候。
面板和Gridview都在UpdatePanel中。
gridview中有一列导致部分PostBack。
我想在这些回发页面上维护面板滚动位置。
有什么办法吗
问候。
解决方法
在asp.net中没有内置的解决方案
但是,这个问题有一个解决方法;你需要用javascript来处理它。
解决方案在这里提到:Maintain Scrollbar Position Inside UpdatePanel After Partial PostBack
2012年5月20日编辑看完评论后
<form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release" /> <script type="text/javascript"> // It is important to place this JavaScript code after ScriptManager1 var xPos,yPos; var prm = Sys.WebForms.PageRequestManager.getInstance(); function BeginRequestHandler(sender,args) { if ($get('<%=Panel1.ClientID%>') != null) { // Get X and Y positions of scrollbar before the partial postback xPos = $get('<%=Panel1.ClientID%>').scrollLeft; yPos = $get('<%=Panel1.ClientID%>').scrollTop; } } function EndRequestHandler(sender,args) { if ($get('<%=Panel1.ClientID%>') != null) { // Set X and Y positions back to the scrollbar // after partial postback $get('<%=Panel1.ClientID%>').scrollLeft = xPos; $get('<%=Panel1.ClientID%>').scrollTop = yPos; } } prm.add_beginRequest(BeginRequestHandler); prm.add_endRequest(EndRequestHandler); </script> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Panel ID="Panel1" runat="server" Height="300"> <%-- Some stuff which would cause a partial postback goes here --%> </asp:Panel> </ContentTemplate> </asp:UpdatePanel> </form>
以下是代码快照: