【问题标题】:Send gridview data from client side to server side at once一次将gridview数据从客户端发送到服务器端
【发布时间】:2013-07-30 10:59:35
【问题描述】:

在 ASP.NET 2.0 Web 应用程序中,第一列中有一个包含复选框的 gridview。 检查复选框后复选框或ROW复选框,oncheckChange事件在服务器端触发。在这种情况下,特定行数据或所有行数据(在标题复选框的情况下)被添加到会话中的数据表中以进行进一步处理。除此之外,它还调用一些 javascript 函数来选中/取消选中复选框,突出显示客户端的行。

如果用户想要检查多个复选框而不是通过标题复选框。它的行为出错了。如果用户快速选中复选框,则很少有复选框被选中,并且很少有未选中的复选框。 我猜是因为在每个 OnCheckChange 事件上都有一个对服务器端的请求,然后是一些 js 方法,所以这需要时间,但是在请求完成之前,用户选中了下一个复选框,但实际上并没有选中。

有什么办法,我可以让用户检查他/她想要检查多少个复选框,然后将它们发送到服务器以存储在数据表中?

欢迎提出建议。

【问题讨论】:

  • 在服务器上触发 OnCheckChange 时您是否使用 AJAX?
  • 是的。 Ajax 用在应用中。

标签: javascript html asp.net gridview web


【解决方案1】:

您应该为这种功能添加加载程序。我希望你应该使用更新面板。您可以为服务器端处理请求的时间添加更新进度控制。它会提示用户等待。您也可以使用 jquery 的 ajax 请求来做类似的工作。

【讨论】:

  • 我已经在使用与该更新面板相关联的更新进度控件。我正在做的是在 InitializeRequest() 函数中禁用 gridview 并在其上显示图像(加载符号),并在 EndRequest() 函数中将其恢复为正常状态。这些函数是: var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_initializeRequest(InitializeRequest); prm.add_endRequest(EndRequest);
  • 但问题仍然存在
  • 您应该尝试 Jquery ajax 请求而不是更新面板,因为它的性能比通过 jquery 的 ajax 调用慢。通过这种方式,您可以在请求进行时禁用客户端的其他复选框。您可以拥有的另一件事是拥有一个具有页面最大高度和宽度的高度和宽度的 div 元素,并使其在加载器中可见。我相信它会解决问题。
猜你喜欢
  • 1970-01-01
  • 2013-04-11
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 2012-08-29
  • 2020-08-17
  • 2021-01-26
  • 1970-01-01
相关资源
最近更新 更多