2

グリッドビューをスクロールできるjQuery関数がありますが、更新パネルを追加するとスクロールバーがなくなり、結果がすべてのページ全体に表示されます。この問題は、パネルを更新するトリガー ボタンを追加したときに発生しました。私のページのヘッダーセクションにあるものは次のとおりです。

<script src="Scripts/gridviewScroll.min.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui-1.8.23.custom.min.js" type="text/javascript"></script>

<script type="text/javascript">

    $(document).ready(function () {
        gridviewScroll();
    });
    function gridviewScroll() {
        $('#gvMain').gridviewScroll({
            width: 900,
            height: 500,
            arrowsize: 30,
            varrowtopimg: "Images/arrowvt.png",
            varrowbottomimg: "Images/arrowvb.png",
            harrowleftimg: "Images/arrowhl.png",
            harrowrightimg: "Images/arrowhr.png"
        });
    } 

そして、ここに私のマークアップがあります:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>

   <div> 


 <asp:GridView ID="gvMain" runat="server" Width="100%" AutoGenerateColumns="False" 
    ......
..........

</asp:GridView> 

    </div>    
     </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="btnClick" />
        </Triggers>
    </asp:UpdatePanel>
4

1 に答える 1

3

これは、ajax を介してグリッドを更新しているためです。その場合、DOM が変更され、行った変更が失われます。更新前に適用されたスタイルを維持するために、部分的な更新ごとに gridviewScroll() メソッドを呼び出す必要があります。これを行うには、これを試してください:

$(document).ready(function () {
    gridviewScroll();
});

Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(evt, args) {
    gridviewScroll();
});

そうすれば、部分的な更新のたびにスタイルが再適用され、スクロールが行われます。

于 2013-02-02T03:09:06.170 に答える