簡體   English   中英

ASP.NET回發后如何在Datagrid中維護滾動位置

[英]ASP.NET How to Maintain Scroll Position within a Datagrid After Postback

我有一個包含數據網格的aspx頁面。 該數據網格是通過SQL查詢在代碼后面填充的,可以有1到1000行。

用戶可以單擊每一行並編輯該行的數據。 但是,一旦保存,無論位於何處,數據網格都將滾動回到頂部。 我想在數據網格中保持滾動位置,以便用戶可以輕松地編輯下一行。 我的aspx頁面上有以下內容:

<script src="common.js" type="text/javascript"></script>

    <script type = "text/javascript">

        function setScroll(val) {
            document.getElementById("hidscrollPos").value = val.scrollTop;
        }

        function scrollTo(what) {
            document.getElementById(what).scrollTop =
        document.getElementById("hidscrollPos").value;
        }
</script>

<body MS_POSITIONING="GridLayout" onload="javascript:scrollTo('divDataGrid')">
<form id="form1" method="post" runat="server">
<asp:Panel ID="Panel4" style="left: 0px; position: absolute; top: 354px" runat="server">
<div id="divDataGrid" style="overflow:scroll;" onscroll="javascript:setScroll(this);">
    <asp:DataGrid ID="grdItem" runat="server" AllowSorting="True"
        AutoGenerateColumns="False" style="position: absolute; top: 50px" 
        CssClass="grdGrid" Font-Size="X-Small" GridLines="None" Width="97%" 
        Height="4px" CellPadding="1">


</asp:DataGrid>
</div>
</asp:Panel>
<input type="hidden" id="hidscrollPos" name="scrollPos" value="0" runat="server" />
</form>
</body>

在數據網格中,我定義了11個asp:TemplateColumns,我認為(希望嗎?)與此問題無關。 如果需要,我當然可以添加該代碼。

我的.css文件具有grdGrid:

.grdGrid
{
FONT-SIZE: 12px;
FONT-FAMILY: Verdana;
BACKGROUND-COLOR: white
}

我正在使用Visual Studio 2008和IE9。 用戶將使用IE8或IE9。

任何幫助將非常感激!

您可以將數據網格包裝在UpdatePanel中嗎?

在頭頂着牆打了幾個小時之后,我終於明白了。

上面發布的代碼是正確的並且可以正常工作。 問題是divDataGrid包含在另一個div中,並且該div有溢出:自動設置。 因此,我看到的滾動條來自該div,而不是divDataGrid或grdItem。

一旦我從上一個div中刪除了overflow:auto設置,一切便開始工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM