我正在使用c#在asp.net中的web应用程序中工作,我希望显示10.000 - 1.000.000之间的大量行。数据绑定很快,因为我在调试模式中逐步检查,但当页面尝试显示GridView时,它需要永远。有什么建议吗?
答案 0 :(得分:0)
问题是当客户端(浏览器)尝试显示(渲染)大量GUI时。要求客户端渲染10,000到1,000,000行可能会占用太多时间。
问题的一个解决方案是使用带有AllowPaging
属性的PageSize
分页。这会将GridView
中显示的行数限制为您在PageSize
属性中设置的行数。
<强> HTML 强>:
<asp:GridView ID="gv"
runat="server"
OnPageIndexChanging="gv_PageIndexChanging"
OnPageIndexChanged="gv_PageIndexChanged"
AllowPaging="true"
PageSize="50">
<Columns>
....
代码:
protected void gv_PageIndexChanged(object sender, EventArgs e)
{
// bind your data
gv.DataBind();
}
protected void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
if (e.NewPageIndex == -1)
gv.PageIndex = Int32.MaxValue;
else
gv.PageIndex = e.NewPageIndex;
}
推荐:使用上述解决方案可以解决用户界面问题,但仍会提取的大量数据。我建议在 SQL级别和 UI级别中进行分页。
答案 1 :(得分:0)
您应该为此问题设计一个查询,例如,您希望在gridview分页中的每个页面上显示10,00000条记录中的10条记录。
从下面的select语句中的gridview中传递三个参数(&#39; @startRowIndex&#39;,&#39; @startRowIndex&#39;,&#39; @ maximumRows&#39;)并使用{{1}方法(上面的SQL Server 2005支持它)获得顺序增加的行号。
ROW_NUMBER()