我正在构建一个使用GridView控件的.NET应用程序。我正在使用LinkButton控件允许用户进入编辑模式。每当用户单击此按钮时,它都允许他按原样编辑条目;但是,它也会滚动回到页面顶部。显然,这并不理想;但是,我不能简单地使用event.PreventDefault()来消除这种行为。
我已经分配了班级" gridActionLinks"控制。当用户点击需要时,我需要发生链接操作,然后滚动。现在,它向下滚动到链接,然后执行默认链接行为(包括转到页面顶部)。有没有解决的办法?也就是说,有没有办法首先执行链接行为,然后滚动?
非常感谢!
剧本:
FRQ
aspx的片段:
$(".gridActionLinks").click(function (event) {
$('html, body').animate({
scrollTop: $(this).offset().top
}, 100
);
});
一些aspx.cs:
<asp:TemplateField HeaderText="">
<ItemTemplate>
<asp:LinkButton ID="detailsLink" runat="server" CommandName="Edit" CommandArgument="" Tooltip="Edit Record" CausesValidation="False" CssClass="gridActionLinks"><img src="../img/detailsIcon.png" /></asp:LinkButton>
<asp:LinkButton ID="deleteLink" CommandName="Delete" runat="server" Tooltip="Delete Record" CssClass="gridActionLinks" CausesValidation="False"><img src="../img/deleteIcon.png" /></asp:LinkButton>
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="insertLink" CommandName="Update" runat="server" Tooltip="Save" CausesValidation="False"><img src="../img/saveIcon.png" /></asp:LinkButton>
<asp:LinkButton ID="cancelLink" CommandName="Cancel" runat="server" Tooltip="Cancel" CausesValidation="False"><img src="../img/cancelIcon.png" /></asp:LinkButton>
</EditItemTemplate>
<FooterTemplate>
<asp:LinkButton ID="insertLink" runat="server" CommandName="Insert" Tooltip="New Entry"><img src="../img/saveIcon.png" /></asp:LinkButton>
<asp:LinkButton ID="cancelLink" runat="server" CommandName="CancelEntry" Tooltip="Cancel"><img src="../img/cancelIcon.png" /></asp:LinkButton> </FooterTemplate>
</asp:TemplateField>
答案 0 :(得分:1)
由于您的链接按钮已标记为runat="server"
,因此它们将生成回发事件,并且页面将刷新。如果您希望在回发后保持页面位置,请使用page directive:
<%@ Page Language="c#" CodeBehind="MyPage.aspx.cs" AutoEventWireup="false" Inherits="MyPage" MaintainScrollPositionOnPostBack="true"%>
this.MaintainScrollPositionOnPostBack = true;