0

我正在使用 asp.net 页面,该页面调用另一个包含 GridView 的 ASPX 页面,并在更新面板内进行分页

我通过 jquery 调用页面并且它的加载很好但是当我点击 Gridview 分页时,Grid 视图消失了

<div id = "divParent">

</div>

$(document).ready(function () {
   BindDiv('divParent', 'Parent.aspx');         
});

function BindDiv(DivID, url) {
        $('#' + DivID).empty();
        $('#' + DivID).append('<img src="Images/ajax_loader.gif" alt="Loading..." />');

        $.get(url, function (response) {
            $('#' + DivID).empty();
            $('#' + DivID).append($(response).find('#ParentContainer')); 

        });
    }

第二个aspx页面代码

<div id = "ParentContainer">
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers ="true" UpdateMode ="Conditional">
    <ContentTemplate>
    <asp:GridView ID="gvParent" runat="server" SkinID="gvParent" AutoGenerateColumns="False"
        AllowSorting="true" AllowPaging="true" PageSize="10" OnPageIndexChanging="gvParent_PageIndexChanging">
        <Columns>
            <asp:TemplateField HeaderText="Customer ID" SortExpression="CustomerID">
                <ItemTemplate>
                    <asp:Label ID="lblCustomerID" runat="server" Text='<%# Eval("CustomerID") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="First Name" SortExpression="Fname">
                <ItemTemplate>
                    <asp:Label ID="lblFname" runat="server" Text='<%# Eval("Fname") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    </ContentTemplate>
    </asp:UpdatePanel>
</div>

请帮助提前谢谢

4

1 回答 1

0

你把一切都搞混了。
了解每个部分在这里做什么,你就会明白为什么这不起作用。

Parent.aspx包含 GridView 并且在她内部也有 UpdatePanel 的页面需要发回同一页面并从同一页面返回才能工作。

具有 jQuery 并加载的另一个页面Parent.aspx是获取结果,将其呈现到不同的页面,并且Parent.aspx包含的​​ javascript 永远不会运行。现在完整的代码Parent.aspx在其他页面中,你尝试Parent.aspx再次调用ajax,并在哪里得到结果?

网格视图是一个“开箱即用”的控件,需要一些标准方法才能正常工作。UpdatePanel 的设计可以容纳 GridView,并且它们可以一起工作,因为它们就是这样设计的。

如果您添加 jQuery 加载,那么您需要自定义所有逻辑,以制作自定义网格视图、自定义调用等。

如果你把它们混在一起,它们根本就行不通。

于 2012-12-21T14:02:49.010 回答