在页面上显示大型查询结果

时间:2014-08-08 15:47:27

标签: c# javascript asp.net

我想要执行分页而不必为下一组信息调用数据库。当前的查询(对于典型的查询)需要一些时间(几分钟)来返回结果,因此我不想设置将继续ping数据库以获取数据的分页。我想利用DataTable对象中当前的数据,然后浏览它。我假设我会使用Javascript之类的东西来表示这一点,但是我对Javascript的体验并不是很广泛,所以我不知道这是如何工作的。

作为内容的示例,现在测试查询返回大约6,500行,其中包含大约30列的数据。

我正在使用ASP.NET并且目前正在使用网络表单。到目前为止还没有将所有内容转换为MVC。

2 个答案:

答案 0 :(得分:0)

如果您使用的是经典.NET,您只需将数据集传递给gridview控件并将allow paging设置为true即可。

Gridview.AllowPaging

答案 1 :(得分:0)

如果您只是想运行查询,请将数据放入数据表中,然后在数据网格中将其显示给用户并进行分页,然后您可以设置以下属性:

AllowPaging="true"
PageSize="10" //Use to display however many records you want per page.
OnPageIndexChanged="dgMyGrid_PageIndexChanged" //Use this to go to the correct page

然后创建一个PagerStyle(在你的DataGrid标签内),下面是一个例子:

<PagerStyle PrevPageText="< Prev " 
           NextPageText=" Next >" 
           Font-Bold="true"
           HorizontalAlign="Center" 
           Mode="NextPrev" />

对于OnPageIndexChanged事件,您可以使用以下内容:

protected void dgMyGrid_PageIndexChanged(object sender, DataGridPageChangedEventArgs e)
{
    dgMyGrid.CurrentPageIndex = e.NewPageIndex;
    dgMyGrid.DataSource = MyDataTable;
    dgMyGrid.DataBind();
}

但是,如果有这么多记录,您可能需要查看自定义分页。这aritcle可能有所帮助。