巨大数据集上的GridView命令

时间:2010-12-13 16:41:38

标签: c# asp.net gridview

我有一个显示超过30000行的GridView,用户需要能够编辑每行的“标志”(复选框)和“原因”(文本框)。我想到了两种方法:

1:每次勾选复选框时回发,并将原因和标志保存在单个行上 - 如果仅编辑一行则快速,但当需要为多行更改标志时变得乏味,因为页面需要每次都回发因此重新燃起了巨大的网格。

2:禁用复选框中的自动回发功能,仅在按下全局“更新”按钮时更新表格。这允许快速检查/取消检查,但它必须遍历每一行以检查状态 - 我不知道这需要多长时间,坦率地说我不想知道!

我还能使用其他方法吗?也许使用AJAX,但它是否易于用于GridViewRow?

由于

2 个答案:

答案 0 :(得分:0)

您可以使用AJAX执行此操作。如果我做这样的事情,那可能就是我想你的方法。它将为您的用户提供良好的用户体验,您不必担心最后会进行大量处理。

另外请注意,如果您有30,000条记录,那么此应用程序对您的用户有用吗?我怀疑是否有人会查看30,000条记录并从中获得任何有用的信息......

答案 1 :(得分:0)

听起来像你在第一次加载页面时显示CheckBox / TextBox控件。如果是这种情况,您绝对应该 NOT AutoPostBack。像普通表单一样对待它,切换到ASP Repeater控件,在单独的页面上将提交的值从表单中提取出来,然后将它们提交到数据库。您的问题中没有任何内容让我相信您需要打破正常的表单提交模型,以适应用户与此页面交互的方式。

您没有提到使用编辑/更新/取消按钮,这使我相信您没有使用内置的GridView命令。老实说,听起来我觉得你试图让这个页面适合预先存在的ASP控件的模型,而实际上却没有。如果我是你(并且有时间),我将使用ASP Repeater控件重写此页面,并使用jQuery通过AJAX调用将页面提交到ASP.NET WebMethod。上一句话中有很多行话,但是一旦你第一次把它拉下来,它就会简化你编写页面的方式。

修改:您的评论说30,000是商业决策,所以我删除了部分答案,表明您可以选择此事。我感觉到你的痛苦。