可滚动GridView无法与ASP.Net中的UpdatePanel一起使用

Scrollable GridView does not work with UpdatePanel in ASP.Net

本文关键字:UpdatePanel 中的 一起 Net ASP GridView 滚动      更新时间:2023-09-26

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

这是因为您通过ajax更新网格,当您这样做时,DOM会被更改,您所做的修改也会丢失。您需要在每次部分更新后调用gridviewScroll()方法,以维护更新前应用的样式。要做到这一点,请尝试以下操作:

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

这样,在每次部分更新后,样式都会重新应用,滚动也是如此。