2013-07-30 167 views
0

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

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

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

建议表示赞赏。

+0

OnCheckChange在服务器上触发时是否使用AJAX? –

+0

是的。 Ajax用于应用程序中。 –

回答

1

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

+0

我已经在使用与更新面板关联的更新进度控制。我正在做的是在InitializeRequest()函数中禁用gridview并在其上显示图像(加载符号),并在EndRequest()函数中将其恢复到正常状态。这些函数是:var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_initializeRequest(InitializeRequest); prm.add_endRequest(EndRequest); –

+0

但仍然存在问题 –

+0

您应该尝试使用Jquery ajax请求而不是更新面板,因为它的性能比通过jquery调用ajax要慢。通过这种方式,您可以在请求正在进行时禁用客户端的其他复选框。你可以拥有的其他东西是有一个div元素,页面的最大高度和宽度的高度和宽度,并使用加载器可见。我相信它会解决问题。 – JSHunjan

相关问题