【问题标题】:Scrollable GridView does not work with UpdatePanel in ASP.Net可滚动的 GridView 不适用于 ASP.Net 中的 UpdatePanel
【发布时间】:2013-02-01 21:33:07
【问题描述】:

我有 jQuery 函数,它允许我的 gridview 滚动,但是当我添加更新面板时,滚动条消失了,结果只是填满了整个页面。当我添加一个更新面板的触发按钮时,这个问题就发生了。 这是我页面标题部分的内容:

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

【问题讨论】:

    标签: javascript jquery asp.net asp.net-ajax


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢 Marcus,但在我按照您的指示操作后出现此错误:“Line: 27 Error: 'Sys' is undefined”
    • 我通过将包含 Sys.* 调用的 块向下移动(到正文 部分)在页面的 HTML 中。我最初在页面的 HEAD 部分中有我的脚本块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 2011-03-21
    • 2013-01-06
    • 2011-01-31
    • 2013-09-25
    相关资源
    最近更新 更多