【发布时间】:2014-09-19 04:36:46
【问题描述】:
我使用GridView 来显示来自数据库的数据。首先我从DB查询数据到list<list<string>>,使用linq排序,复制这个数组到DataTable,绑定DataTable到GridView。但是,如果在DataTable 中超过 1000 行 - 它可以工作很长时间或无法正常工作(浏览器中的错误)。
如何解决这个问题?
更新我在列中使用行跨度并为所有行创建一个删除按钮,如果我使用分页,它会起作用吗?
<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>
【问题讨论】:
-
您认为 1000 行会很快吗?为什么不将其拆分为用户(和页面)可以合理处理的 50 或 100 页。
-
请做一些渐进式抓取加载技术
标签: c# asp.net gridview ado.net