如何滚动到DataGrid中的选定内容?

时间:2013-01-09 15:03:10

标签: asp.net datagrid

我正在显示这样的Datagrid,并邀请用户进行选择......

<div id="gradesDiv" style="overflow: auto; width: 380px; height: 300px">
    <asp:DataGrid id="gradesGrid"
                  BorderWidth="1"
                  CellPadding="3"
                  AutoGenerateColumns="true"
                  runat="server">
        <Columns>
             <asp:ButtonColumn HeaderText="Select&nbsp;Item"
                               ButtonType="LinkButton"
                               Text="Select"
                               CommandName="Select">
             </asp:ButtonColumn>
        </Columns>
    </asp:DataGrid>
 </div>

(代码隐藏中添加了另外三列)。但是当用户进行选择时,执行回发并且滚动位置丢失。我希望能够重置div以显示所选项目。有谁知道怎么做?

我尝试过添加

MaintainScrollPositionOnPostback="true"

到asp,但它没有帮助。我试图在代码隐藏中保持滚动位置,但gradeDiv似乎不可用于代码隐藏。

1 个答案:

答案 0 :(得分:1)

网上有很多关于如何做到这一点的创意方法。只需搜索 - 在回发时维护div滚动位置。这只是其中一个例子:

<script type="text/javascript">
    $(document).ready(function () {
        var xPos, yPos;
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_beginRequest(BeginRequestHandler);
        prm.add_endRequest(EndRequestHandler);

        var divId = 'gradesDiv';

        function BeginRequestHandler(sender, args) {
            xPos = $get(divId).scrollLeft;
            yPos = $get(divId).scrollTop;
        }
        function EndRequestHandler(sender, args) {
            $get(divId).scrollLeft = xPos;
            $get(divId).scrollTop = yPos;
        }
    });
</script>