Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gridview';在ASP.NET中,肯定有更好的方法吗?_Asp.net_Gridview - Fatal编程技术网

Gridview';在ASP.NET中,肯定有更好的方法吗?

Gridview';在ASP.NET中,肯定有更好的方法吗?,asp.net,gridview,Asp.net,Gridview,他们看起来很讨厌 我有一个gridview,如果没有设置过滤器,它运行的查询将返回10000个结果。。。并在第一页显示其中的10个。您按第2页,然后它再次执行查询。。。再一次 难道没有办法缓存它们吗?有没有一种更简单的方法可以将所有结果导入,然后在没有重复查询的情况下实时过滤它们?ASP.NET必须与gridview进行斗争吗 我想知道是否有更好的方法…而不是执行一个返回一个大结果集中的所有查询的查询,考虑以一种分页方式返回结果。 你可以把结果放在VIEWSTATE中,但是如果你有很多可以返回的

他们看起来很讨厌

我有一个gridview,如果没有设置过滤器,它运行的查询将返回10000个结果。。。并在第一页显示其中的10个。您按第2页,然后它再次执行查询。。。再一次

难道没有办法缓存它们吗?有没有一种更简单的方法可以将所有结果导入,然后在没有重复查询的情况下实时过滤它们?ASP.NET必须与gridview进行斗争吗


我想知道是否有更好的方法…

而不是执行一个返回一个大结果集中的所有查询的查询,考虑以一种分页方式返回结果。


你可以把结果放在VIEWSTATE中,但是如果你有很多可以返回的数据,这是不可取的。

< P>而不是执行一个返回一个大结果集中的所有的查询,考虑以一种分页方式返回结果。


您可以将结果放在ViewState中,但如果您有大量可返回的数据,则不建议这样做。

使用转发器创建查询,只返回所需的结果。您的查询可能需要使用resultsPerPage和PageNumber的参数


连接到这些数据集的GridView适合5分钟的演示,但实际上不应该以生产代码结束。“讨厌”是个好词。

使用转发器创建查询,只返回所需的结果。您的查询可能需要使用resultsPerPage和PageNumber的参数


连接到这些数据集的GridView适合5分钟的演示,但实际上不应该以生产代码结束。“讨厌”是个好词。

如果您使用的是SQL Server 2005及更高版本,则可以在查询中使用
行数()
函数,您可以使用该函数对源代码返回的行进行分页

ScottGu有一篇使用数据列表的详细博客文章,但这同样适用于GridView


更简明地介绍了
行号()

的详细信息如果您使用的是SQL Server 2005及更高版本,则可以在查询中使用
行号()
函数,您可以使用该函数对源代码返回的行进行分页

ScottGu有一篇使用数据列表的详细博客文章,但这同样适用于GridView


ROW\u NUMBER()

您使用的网格的细节有更简明的介绍吗?GridView将绑定到实现IEnumerable的任何东西,因此您是否意识到可以自己获取数据并显式绑定它?类似于:

List<myDataObjects> data = executeMyQuery();
gridview.DataSource = data;
gridView.DataBind();
List data=executeMyQuery();
gridview.DataSource=数据;
gridView.DataBind();

通过这种方式,您可以控制何时提取数据,甚至可以在需要时缓存数据。

您使用的是哪个网格?GridView将绑定到实现IEnumerable的任何东西,因此您是否意识到可以自己获取数据并显式绑定它?类似于:

List<myDataObjects> data = executeMyQuery();
gridview.DataSource = data;
gridView.DataBind();
List data=executeMyQuery();
gridview.DataSource=数据;
gridView.DataBind();

通过这种方式,您可以控制何时提取数据,如果需要,您甚至可以缓存数据。

我有点想要一种半自动排序、多页等的方式。所谓使用转发器,您的意思是基本上使用我自己的格式将结果拉回来并显示在页面上吗?转发器是一种类似于gridview的控件,但是您自己定义标记。它基本上是一个美化的for循环,内置了一些页面事件内容。如果您的数据是表格格式的,那么我想应该使用网格视图。不幸的是,您必须自己滚动很多排序/分页代码。控件是不相关的。如何返回数据才是最重要的。您可以将中继器绑定到返回一百万行的内容,就像将GridView绑定到返回一百万行的内容一样简单。事实上,你可以按照你的建议去做(创建查询以只返回你需要的结果),然后将其绑定到GridView。我有点想要一种半自动排序、多页等的方法。你是说使用一个转发器,你的意思是基本上把我的结果拉回来并显示在我自己的页面上,使用我自己的格式?repeater是一个类似于gridview的控件,但标记是由您自己定义的。它基本上是一个美化的for循环,内置了一些页面事件内容。如果您的数据是表格格式的,那么我想应该使用网格视图。不幸的是,您必须自己滚动很多排序/分页代码。控件是不相关的。如何返回数据才是最重要的。您可以将中继器绑定到返回一百万行的内容,就像将GridView绑定到返回一百万行的内容一样简单。事实上,你可以按照你的建议去做(创建查询以只返回你需要的结果),然后将其绑定到GridView。嗯,如果我确实撤回了10000个结果(尽管它的基本名称、电话号码、电子邮件),会不会引起问题,即使在没有刷新页面或其他任何内容的情况下过滤这些结果?如果每个结果都是100字节(可能更大),并且在viewstate中有10.000行这样的行,那么最终将获得近1MB的数据。ViewState是经过编码的,所以它在页面上的大小不会太大,但您希望ViewState尽可能小。嗯,如果我确实撤回10000个结果(尽管它的基本名称、电话号码、电子邮件),会不会引起问题,即使在没有刷新页面或其他任何内容的情况下过滤这些结果?如果每个结果都是100字节(可能更大),并且在viewstate中有10.000行这样的行,那么最终将获得近1MB的数据。ViewState是经过编码的,因此它在页面上不会太大,但您希望使ViewState尽可能小。Sweet,看起来有用但有点复杂,将花费一些时间学习此Sweet,看起来有用但有点复杂,将花费一些时间学习此功能