asp.net webforms ajax update gridview

我们有一个gridview,包含大量的信息(100或行和列),我们需要提高它们的性能。

目前为了解决一些性能问题,我们已经使gridview没有edittemplate,而是双击一个单元格将显示使用webmethods检索并使用jquery动态填充的可用选项的下拉列表,在下拉列表中选择一个选项后将html中的teh值设置为所选选项的值。

我们在将此更改发送回服务器时遇到问题,我们在页面上有一个按钮导致回发到服务器,但是当我们遍历gridview项目时,我们通过jqueryfunction所做的更改不可用仍然具有与以前相同的值。

在填充/更新我们如何实现这一目标方面,我们是否采取了错误的方式?

旁白:我知道我们应该限制网格的界限,但目前这不是一个选择

当你原生使用GridView时,也就是说,你让它处理编辑模板, ViewState进入场景并且工作得很好。 但是当您手动操作网格时,相关位置不会反映任何更改,因此在服务器上具有相同的值。 你说你通过jQuery获取dblclick上的值。 为什么不更新模糊行? 我的意思是,当用户进入下一行时,只需通过Ajax更新当前记录。 这是最安全的方法。 一旦我与Telerik的RadTree有相同的经历。 你应该:

  1. 使用为您的控件提供的客户端API,或
  2. 不要乱用你的控件工作的本地方式,同时期望PostBacks工作,或
  3. 使用控件仅用于显示目的,但是对于操作,请使用AJAX。

如果您想提高性能,则不得使用。

  1. 的UpdatePanel
  2. 的ScriptManager
  3. 网格视图

我猜你正在使用所有这些。

您可以使用jQuery直接调用ASP.NET AJAX页面方法 ,而根本不使用ScriptManager。 将其与任何jQuery Grid建议( 此处和此处 )的强大function相结合。 我对DataTables很满意,但我听到越来越多关于SlickGrid的消息 。 你应该尝试一下。

既然一切都是客户端,那么回发时就不会有价值丢失的问题。

此外,我强烈建议您不要使用UpdatePanel 。 但那就是我。

我认为问题是在回帖后重新加载来自视图状态的数据。 我们使用webmethod将东西加载到jquery对话框并通过它进行更新。 并且在成功保存后更新了网格以反映更改。

我发现这个代码“框架” http://www.codeproject.com/KB/ajax/AJAXWasHere-Part1.aspx ,它修改/重新创建ViewState并使用AJAX请求提交它,这样你仍然可以在ASP中使用事件模型。净。 这是一个AJAX解决方案,之前MS发布了自己的.NET 2.0。

我将它与mootools JS库结合使用,因此你不应该在使用JQuery时遇到任何问题,但除非你将“CallBackObject”重新编写为Jquery插件,否则你将无法使用JQuery AJAX方法。

问候