GridView显示超过1000行

时间:2014-09-19 04:36:47

标签: c# asp.net gridview ado.net

我使用GridView来显示来自DB的数据。首先,我将数据从DB查询到list<list<string>>,使用linq排序,将此数组复制到DataTable并将DataTable绑定到GridView。但是如果在DataTable超过1000行 - 它工作很长或不起作用(浏览器中的错误)。 如何解决这个问题?

UPDATE我在列中使用rowspan并为所有行创建一个删除按钮,如果我使用分页wiil它可以工作吗?

    

<div>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnDataBinding="GridView1_DataBinding" OnRowDeleted="GridView1_RowDeleted" OnRowDeleting="GridView1_RowDeleting" > 

     <Columns>
        <asp:BoundField DataField="Number" ItemStyle-Width="200px" > <ItemStyle Width="200px" > </ItemStyle>
        </asp:BoundField>

        <asp:BoundField DataField="Name" ItemStyle-Width="200px" > <ItemStyle Width="200px" > </ItemStyle>
        </asp:BoundField>

        <asp:BoundField DataField="Nameoid" ItemStyle-Width="200px" > <ItemStyle Width="200px" > </ItemStyle>
        </asp:BoundField>
        <asp:TemplateField>
                <ItemTemplate>
                    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                        <ContentTemplate>

                            <asp:Button ID="Button2" runat="server" Text="Button" OnClientClick="return DeleteConfirm();" OnClick="Button2_Click" />
                           <asp:HiddenField ID="HiddenField2" runat="server" Value='<%#Bind("Number") %>' />

                        </ContentTemplate>
                    </asp:UpdatePanel>
                </ItemTemplate>
            </asp:TemplateField>

     </Columns>
     </asp:GridView>     

3 个答案:

答案 0 :(得分:0)

我的建议是在您的GridView中使用延迟加载模式。 你可以参考: LazyLoadUpdatePanelusingTimerControlAJAX

或者您可以实现自定义分页

Custompaging

答案 1 :(得分:0)

您可以在网格视图中使用分页,网格大小为10,20,30以容纳大量数据,以便页面不会崩溃。

尝试参考此示例 http://www.codeproject.com/Articles/106678/Display-Large-Amount-of-Data-in-GridView-with-Sear

答案 2 :(得分:0)

好像你在一个往返时间里做了很多服务器端代码。你应该把它做得更少,以便页面可以在网格视图中显示结果。

以下是您应该做的一些事情:

  1. 不需要先在列表中存储数据表然后再排序。您可以直接使用DATAVIEW类对DB中的结果进行排序。

  2. 我认为您不应该在单个页面中显示网格视图中的所有1000条记录。您应该在网格视图中使用PAGING。这也是网格视图的内置功能,您可以根据需要在一个网格视图页面中显示记录数。

  3. 参考如何做到这一点有完整的例子。请点击以下链接 http://www.dotnetgallery.com/kb/resource12-How-to-implement-paging-and-sorting-in-aspnet-Gridview-control.aspx

    <强>更新

    如果要使用每行上的链接按钮删除gridview中的行。然后按照以下文章

    enter link description here

    您可以将UpdatePanel放在gridview之外。首先尝试使用上面的代码(来自链接),然后尝试添加更新面板。如果您觉得有任何困难,请在此处