1

このようなデータグリッドを表示し、ユーザーに選択を促しています...

<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>

(コード ビハインドに他の 3 つの列が追加されます)。ただし、ユーザーが選択を行うと、ポストバックが実行され、スクロール位置が失われます。選択したアイテムを表示するためにdivをリセットできるようにしたいと思います。誰もこれを行う方法を知っていますか?

追加してみました

MaintainScrollPositionOnPostback="true"

aspにしますが、役に立ちません。分離コードでスクロール位置を維持しようとしましたが、分離コードで gradesDiv を使用できないようです。

4

1 に答える 1

1

これを行う方法については、Web上にかなりの数の創造的なアプローチがあります。検索するだけです-ポストバックでdivスクロール位置を維持します。これはそのような例の1つにすぎません。

<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>
于 2013-01-09T16:10:21.913 に答える